используя лямбду с областью по умолчанию - PullRequest
2 голосов
/ 25 ноября 2011

Я столкнулся с проблемой lil, используя лямбду с default_scope в рельсах 2.3.

default_scope lambda { {:account_id => account_id } }

Я использовал вышеуказанный код, но отображается сообщение об ошибке ArgumentError: wrong number of arguments (1 for 0)

Использую ли я lambda worng way?

Спасибо

1 Ответ

2 голосов
/ 25 ноября 2011

Хорошо, вы хотели бы использовать именованную область видимости, чтобы в будущем у вас были другие области действия. Обычно вы хотите избежать изменения области по умолчанию, поскольку это повлияет на другие запросы.

Приведенный ниже код создает именованную область действия с именем current_account и гарантирует, что все записи соответствуют условию, account_id записи должен соответствовать текущему account_id.

named_scope :current_account, :conditions => { :account_id => account_id }

Тогда, когда вы захотите использовать named_scope, вы можете вызвать код ниже:

User.current_account.all

Это как звонить:

User.all(:conditions => { :account_id => account_id })

Надеюсь, это поможет вам, дайте мне знать, если что-то сбивает с толку.

...