我正在使用Koudoku作为付款/订阅墙。我从subscription_controller
:
NoMethodError in Koudoku::SubscriptionsController#show
undefined method `can?' for #<Koudoku::SubscriptionsController:0x00007fab279983b8>
Extracted source (around line #57):
55
56
57
58
59
60
# also, if cancan methods are available, we should use that to authorize.
if defined?(:can?)
return unauthorized unless can? :manage, @subscription
end
return @subscription.present? ? @subscription : unauthorized
我在项目中看不到控制器(它是由koudoku生成的)。 Rails动作调试控制器说该文件位于:
koudoku (2.0.0) app/controllers/koudoku/subscriptions_controller.rb:57:in `load_subscription'
但我的项目中没有koudoku文件夹,也没有subscriptions_controller
。
为什么会这样?有任何想法吗?
答案 0 :(得分:2)
这是宝石的known issue。看起来它使用CanCan gem,但实际上并没有检查gem是否被加载,或者至少不正确。
尝试安装CanCan gem或更新的gem CanCanCan并检查它是否有效。
$ gem install cancancan
$ rails g cancan:ability