неопределенный метод current_user: Cancan и Active Scaffold - PullRequest
0 голосов
/ 16 ноября 2010

Я пытаюсь добавить ссылку действия к активному контроллеру скаффолда, используя

if current_user.can? :update, Post
  config.action_links.add 'export', :label => 'Export', :page => true
end

, но какой бы контроллер я ни пытался использовать, я всегда получаю undefined method current_user
Итак, как я могу проверитьесли зарегистрированный пользователь может / не может что-то сделать?
Я даже пробовал с

def ability
  @ability ||= Ability.new(self)
end
delegate :can?, :cannot?, :to => :ability

, как предлагалось здесь , но безуспешно.
Что с этим не так?

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Обратите внимание, что в обычном случае конфигурация ActiveScaffold выполняется в классе, а не в экземпляре, поэтому не задано значение current_user, поскольку еще нет запроса.

1 голос
/ 16 ноября 2010

current_user - типично определенный метод, но вы должны добавить его. это не снабжено рельсами. Итак, вам нужен метод current_user в вашем ApplicationController. Существует множество примеров, но я бы посмотрел приложение-пример authlogic на github

...