fbc586646f
* Refactor: improve query scope composition with merge syntax Replace manual WHERE clause concatenation with Rails' merge method for more elegant and maintainable scope composition across Card, Comment, and Filter models. This approach better follows Rails conventions and improves code readability. * Extend scope composition improvements to Card::Closeable Apply the same nested hash syntax pattern to closures table references in order and where clauses. * Remove unnecessary outer braces from where clause --------- Co-authored-by: Jeremy Daer <jeremy@37signals.com>
29 lines
891 B
Ruby
29 lines
891 B
Ruby
class Comment < ApplicationRecord
|
|
include Attachments, Eventable, Mentions, Promptable, Searchable, Storage::Tracked
|
|
|
|
belongs_to :account, default: -> { card.account }
|
|
belongs_to :card, touch: true
|
|
belongs_to :creator, class_name: "User", default: -> { Current.user }
|
|
has_many :reactions, -> { order(:created_at) }, dependent: :delete_all
|
|
|
|
has_rich_text :body
|
|
|
|
scope :chronologically, -> { order created_at: :asc, id: :desc }
|
|
scope :preloaded, -> { with_rich_text_body.includes(reactions: :reacter) }
|
|
scope :by_system, -> { joins(:creator).where(creator: { role: :system }) }
|
|
scope :by_user, -> { joins(:creator).where.not(creator: { role: :system }) }
|
|
|
|
after_create_commit :watch_card_by_creator
|
|
|
|
delegate :board, :watch_by, to: :card
|
|
|
|
def to_partial_path
|
|
"cards/#{super}"
|
|
end
|
|
|
|
private
|
|
def watch_card_by_creator
|
|
card.watch_by creator
|
|
end
|
|
end
|