We were very inconsistent regarding these rules. Personally I prefer no empty lines around blocks, clases, etc... as recommended by the Ruby style guide [1], and they're the default values in rubocop, so those are the settings I'm applying. The exception is the `private` access modifier, since we were leaving empty lines around it most of the time. That's the default rubocop rule as well. Personally I don't have a strong preference about this one. [1] https://rubystyle.guide/#empty-lines-around-bodies
23 lines
761 B
Ruby
23 lines
761 B
Ruby
class DirectMessage < ApplicationRecord
|
|
belongs_to :sender, class_name: "User", foreign_key: "sender_id"
|
|
belongs_to :receiver, class_name: "User", foreign_key: "receiver_id"
|
|
|
|
validates :title, presence: true
|
|
validates :body, presence: true
|
|
validates :sender, presence: true
|
|
validates :receiver, presence: true
|
|
validate :max_per_day
|
|
|
|
scope :today, lambda { where(created_at: Date.current.beginning_of_day..Date.current.end_of_day) }
|
|
|
|
def max_per_day
|
|
return if errors.any?
|
|
max = Setting[:direct_message_max_per_day]
|
|
return unless max
|
|
|
|
if sender.direct_messages_sent.today.count >= max.to_i
|
|
errors.add(:title, I18n.t("activerecord.errors.models.direct_message.attributes.max_per_day.invalid"))
|
|
end
|
|
end
|
|
end
|