CanCan gem с вложенными ресурсами и: find_by - PullRequest
2 голосов
/ 17 октября 2011

Я использую вспомогательный метод CanCan load_and_authorize_resource для извлечения ресурсов и создания авторизации, но у меня есть такой вложенный ресурс, как этот

load_and_authorize_resource :company
load_and_authorize_resource :accountings, :through => :company, :class => 'Departments::Accounting'

но мне нужно @accountings можно найти по другому атрибуту, а не по идентификатору Departmets :: Accounting, и присвоить этому атрибуту значение, например

@accountings = @company.find_by_period_id(@period.id)

1 Ответ

1 голос
/ 05 ноября 2012

Вы можете сделать это с двумя дополнительными опциями:

load_and_authorize_resource :accountings,
    :through => :company, :class => 'Departments::Accounting',
    :find_by => :attr, # :period_id in your example
    :id_param => :something # this searches the params hash for
                            # params[:something], and sends that
                            # value to .find_by_attr

Проверьте код для load_and_authorize_resource здесь .

...