如何使用 CanCanCan 处理变形
How to handle inflections with CanCanCan
我有 ContactUsController
和 ContactUs
型号。
在contact_us_controller.rb
class ContactUsController < ApplicationController
skip_before_action :authenticate_request, only: :create
load_and_authorize_resource
...
end
在inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.uncountable 'ContactUs'
end
我正在使用 CanCanCan 来处理授权。
在 ability.rb
我有
class Ability
include CanCan::Ability
def initialize(user)
unless user.present?
can :create, ContactUs # guest users can create contact us
end
if user.admin?
can :manage, ContactUs # only admins can do CRUD
end
end
end
我收到以下错误
NameError (uninitialized constant ContactU Did you mean? ContactUs):
activesupport (6.0.3.2) lib/active_support/inflector/methods.rb:282:in `const_get'
...
我不知道为什么 CanCanCan 检查 ContactU
而不是 ContactUs
!尽管 'ContactUs' 的词形变化为 不可数 。
通过编辑解决inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.uncountable 'contact_us'
end
我有 ContactUsController
和 ContactUs
型号。
在contact_us_controller.rb
class ContactUsController < ApplicationController
skip_before_action :authenticate_request, only: :create
load_and_authorize_resource
...
end
在inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.uncountable 'ContactUs'
end
我正在使用 CanCanCan 来处理授权。
在 ability.rb
我有
class Ability
include CanCan::Ability
def initialize(user)
unless user.present?
can :create, ContactUs # guest users can create contact us
end
if user.admin?
can :manage, ContactUs # only admins can do CRUD
end
end
end
我收到以下错误
NameError (uninitialized constant ContactU Did you mean? ContactUs):
activesupport (6.0.3.2) lib/active_support/inflector/methods.rb:282:in `const_get'
...
我不知道为什么 CanCanCan 检查 ContactU
而不是 ContactUs
!尽管 'ContactUs' 的词形变化为 不可数 。
通过编辑解决inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.uncountable 'contact_us'
end