0

を使用してアクティブなスキャフォールドコントローラーにアクションリンクを追加しようとしています

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

ここで提案されているように、しかし成功しませんでした。
これの何が問題になっていますか?

4

2 に答える 2

2

通常、ActiveScaffold の設定はインスタンスではなくクラスで行われることに注意してください。そのため、まだリクエストがないため、current_user は設定されていません。

于 2011-03-08T03:15:54.570 に答える
1

current_userは通常定義されているメソッドですが、追加する必要があります。Railsでは提供されません。したがって、ApplicationControllerにcurrent_userメソッドが必要です。たくさんの例がありますが、githubのauthlogicサンプルアプリを見てみます

于 2010-11-16T12:37:10.757 に答える