class Note < ApplicationRecord
include GeoRecord
+ belongs_to :author, :class_name => "User", :foreign_key => "user_id", :optional => true
+
has_many :comments, -> { left_joins(:author).where(:visible => true, :users => { :status => [nil, "active", "confirmed"] }).order(:created_at) }, :class_name => "NoteComment", :foreign_key => :note_id
has_many :all_comments, -> { left_joins(:author).order(:created_at) }, :class_name => "NoteComment", :foreign_key => :note_id, :inverse_of => :note
has_many :subscriptions, :class_name => "NoteSubscription"
closed_at + DEFAULT_FRESHLY_CLOSED_LIMIT
end
- # Return the author object, derived from the first comment
- def author
- comments.first.author
+ # Return the note's description, derived from the first comment
+ def description
+ if user_ip.nil? && user_id.nil?
+ all_comments.first.body
+ else
+ RichText.new("text", super)
+ end
end
- # Return the author IP address, derived from the first comment
- def author_ip
- comments.first.author_ip
+ # Return the note's author object, derived from the first comment
+ def author
+ if user_ip.nil? && user_id.nil?
+ all_comments.first.author
+ else
+ super
+ end
end
private