Подтвердить что ты не робот

Пропустить аргументы в области

Может ли кто-нибудь указать пример использования

scope

и параметры?

Например:

class Permission < ActiveRecord::Base
  scope :default_permissions, :conditions => { :is_default => true }
end

У меня есть этот код, который возвращает параметры default_permissions, и я хочу его преобразовать, чтобы вернуть разрешения по умолчанию для данного пользователя (user_id)

Спасибо

4b9b3361

Ответ 1

новый синтаксис (ruby 1.9+), который предотвратит ошибки, даже если вы не предоставите пользователю -

scope :default_permissions_for, ->(user = nil) { ... }

Ответ 2

Использовать диапазоны лямбда:

scope :default_permissions_for, lambda{|user| { :conditions => { :user_id => user.id, :is_default => true } }

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