У меня проблема с 3 уровнями вложенности моделей в CanCan в сочетании с Inherited Resources. Я читал, что мы должны вкладывать все до 2 уровней, но мне пришлось поместить все в модель account
, и теперь я попытался сделать это в CanCan:
load_and_authorize_resource :account
load_and_authorize_resource :project, :through => :account
load_and_authorize_resource :model, :through => :project
Это дает мне переменную @account со значением @project, как будто она перезаписывает это. @project — это то, что должно быть, и @model тоже. Это моя вина, CanCan, унаследованные ресурсы или CanCan просто не поддерживает 3 уровня вложенности? Кроме того, я делаю это в IR для ModelsController.
belongs_to :account, :finder => :find_by_name! do
belongs_to :project, :finder => :find_by_name!
end
Еще одна странность, когда я удаляю часть load_and_
из определения CanCan. Тогда это работает, но я читал, что не использовать часть load
может быть опасно.
Могу ли я использовать только authorize_resource
или мне нужно что-то сделать с CanCan?
authorize_resource
. github.com/ryanb/cancan/wiki/Authorizing-Controller-Actions - person jdl   schedule 22.03.2011