[英]Cancancan in a engine
我想在引擎中使用Rails gem cancancan( https://github.com/CanCanCommunity/cancancan )。 所以我將其添加到我的gemspec文件中,如下所示:
s.add_dependency "cancancan"
在引擎虛擬應用程序和測試應用程序中,我加載了引擎,並且對於每種cancancan方法,我始終會收到有關未定義方法的錯誤。
undefined local variable or method `load_and_authorize_resource'
undefined local variable or method `can?'
[...]
這是我在主應用程序中的ability.rb
文件:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
can :manage, :all
end
end
我嘗試了幾種在引擎中使用cancancan的解決方案,但沒有找到適合我的引擎的解決方案。 這里有些例子:
我的錯在哪里 發布的鏈接之一真的是解決方案,還是它們是錯誤/過時的? 有沒有在引擎中使用cancancan的好教程? 謝謝!
我可以通過將Cancancan從1.9.2更新為實際的1.10.1來解決我的問題,並將我的引擎與這篇文章中的引擎進行比較: https : //github.com/CanCanCommunity/cancancan/issues/151#issuecomment-69487040
您的load_and_authorize_resource
中有WelcomeController
,它正在嘗試加載不存在的Welcome
模型。 相反,嘗試使用authorize_resource class: false
,所以
class WelcomeController < ApplicationController
authorize_resource class: false
# rest of your code
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.