簡體   English   中英

引擎中的加拿大人

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM