Динамически добавлять named_scopes в приложение rails
Так же, как методы динамического поиска в рельсах, есть ли способ иметь методы динамического поиска для связанных моделей?
Рассмотрим следующие модели
class User
attr_accessible :name, :phone_no
has_many :notes
end
class Note
belongs_to :user
attr_acccessible :note
end
Как вызвать динамический искатель атрибута заметки из объекта User?
1 ответ
Решение
Области действия - это методы класса, поэтому User.scope_name (подробнее об областях здесь: http://guides.rubyonrails.org/active_record_querying.html). Если вы хотите найти конкретную заметку, которая принадлежит этому пользовательскому объекту, вы можете определить метод экземпляра - что-то вроде этого:
def note_with_content(content_string)
self.notes.where(:content => "#{content_string}")
end
или же
def last_note
self.notes.last
end
И используйте его следующим образом:
@user.note_with_content("This is a note")
@user.last_note