Динамически добавлять 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
Другие вопросы по тегам