Rails 5 enum inside model's Concerns generates NameError: uninitialized constant
Rails 5 enum inside model's Concerns generates NameError: uninitialized constant
Rails这里5个。
我尝试在我的用户模型(设计模型)中加载问题,但没有成功。
include Levelable
在其他型号上没有任何问题。
我是否必须针对此特殊模型配置一个特殊的 config/helper/initializer 才能使其工作?
Model concern Levelable 被模型 User 和 Client 使用
#models/concerns/levelable.rb
require 'active_support/concern'
module Levelable
extend ActiveSupport::Concern
included do
enum level: { beginner: 0, intermediate: 1, advanced: 2, very_advanced: 3 }
end
end
和模型(为了便于阅读而缩短)
#models/user.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable
include Levelable
acts_as_messageable
end
这个设置结果是:NameError: uninitialized constant User::Levelable
同样的错误发生在 Client 模型上,所以我猜有些东西不适用于我的关注负载。
我已经尝试过自动加载 config/application.rb
内的路径而不做任何更改。
我不知道如何使 Concerns 的负载正常工作,任何帮助都将非常有用。谢谢!
我前段时间遇到过这个问题,经过一番挖掘,我发现我的关注文件使用大写形式命名(出于某些疯狂的原因)。
所以我将它们从 Searchable.rb
重命名为 searchable.rb
,一切都完成了! :)
PS。如果您使用 git/github,差异不区分大小写,因此如果您将它们从 Levelable.rb
重命名为 levelable.rb
它不会出现在 git status
.
干杯
Rails这里5个。
我尝试在我的用户模型(设计模型)中加载问题,但没有成功。
include Levelable
在其他型号上没有任何问题。
我是否必须针对此特殊模型配置一个特殊的 config/helper/initializer 才能使其工作?
Model concern Levelable 被模型 User 和 Client 使用
#models/concerns/levelable.rb
require 'active_support/concern'
module Levelable
extend ActiveSupport::Concern
included do
enum level: { beginner: 0, intermediate: 1, advanced: 2, very_advanced: 3 }
end
end
和模型(为了便于阅读而缩短)
#models/user.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable
include Levelable
acts_as_messageable
end
这个设置结果是:NameError: uninitialized constant User::Levelable
同样的错误发生在 Client 模型上,所以我猜有些东西不适用于我的关注负载。
我已经尝试过自动加载 config/application.rb
内的路径而不做任何更改。
我不知道如何使 Concerns 的负载正常工作,任何帮助都将非常有用。谢谢!
我前段时间遇到过这个问题,经过一番挖掘,我发现我的关注文件使用大写形式命名(出于某些疯狂的原因)。
所以我将它们从 Searchable.rb
重命名为 searchable.rb
,一切都完成了! :)
PS。如果您使用 git/github,差异不区分大小写,因此如果您将它们从 Levelable.rb
重命名为 levelable.rb
它不会出现在 git status
.
干杯