validates_inclusion_of :status, :in => ["open", "closed", "hidden"]
validate :validate_position
+ attr_accessible :lat, :lon
+
+ after_initialize :set_defaults
+
# Sanity check the latitude and longitude and add an error if it's broken
def validate_position
- errors.add_to_base("Note is not in the world") unless in_world?
- end
-
- # Fill in default values for new notes
- def after_initialize
- self.status = "open" unless self.attribute_present?(:status)
+ errors.add(:base, "Note is not in the world") unless in_world?
end
# Close a note
self.comments.first.author_name
end
- # Custom JSON output routine for notes
- def to_json(options = {})
- super options.reverse_merge(
- :methods => [ :lat, :lon ],
- :only => [ :id, :status, :created_at ],
- :include => {
- :comments => {
- :only => [ :event, :author_name, :created_at, :body ]
- }
- }
- )
+private
+
+ # Fill in default values for new notes
+ def set_defaults
+ self.status = "open" unless self.attribute_present?(:status)
end
end