Как я могу заблокировать связанную коллекцию модели? - PullRequest
0 голосов
/ 25 января 2011

У меня есть

class Foo
  has_many :widgets
end

Есть место, где я хочу подтянуть все виджеты с заблокированным выбором.Итак, я хочу сделать эквивалент:

@widgets_to_work_with = Widget.find_all_by_foo_id(@foo.id, :lock => true)

С более приятным кодом, что-то вроде:

@widgets_to_work_with = @foo.widgets(:lock => true)

Какой лучший способ сделать это?

1 Ответ

1 голос
/ 25 января 2011

вы можете переопределить виджеты методов в Foo ActiveRecord или, более безопасно, добавить другой метод к.э.

# in Foo.rb
#...
def self.locked_widgets
  Widget.find_all_by_foo_id(self.id, :lock => true)
end

надежда может быть полезной

...