gemsセルとdeclarative_authorization(Deviseと共に)を使用して、permited_toを含める方法を理解しようとしていますか?セルテンプレートに。これまでのところ、これをセルに追加しましたCell(Deviseはヘルパーとして機能します):
class SidebarCell < Cell::Rails
include Devise::Controllers::Helpers
helper_method :current_user
include Authorization::AuthorizationHelper
helper_method :permitted_to?
def display(args)
@object = args[:object]
@notice = args[:notice]
@alert = args[:alert]
render
end
end
しかし、declarative_authヘルパーモジュールが次のコードを使用しているという事実に爆撃されています。
def permitted_to? (privilege, object_or_sym = nil, options = {}, &block)
controller.permitted_to?(privilege, object_or_sym, options, &block)
end
そして明らかにこれは
undefined local variable or method `controller' for ...
アップデート:
もう少し考えてみると、これがCellsで機能するかどうかはわかりません。Declarative_authは、ルールの基礎となるコントローラーを必要としますが、Cellsはそのコントローラーとは何の関係もありません。コントローラへの参照をCellsに渡さない限り、この2つは互換性がないように見えますか?細胞は行く方法ではないと考え始めています。