【发布时间】:2016-12-26 14:31:10
【问题描述】:
Rails 5 在这里。
我尝试在我的用户模型(设计模型)中加载一个关注点,但没有成功。
include Levelable 在其他型号上工作没有任何问题。
我是否必须针对此特殊模型配置特殊的配置/帮助程序/初始化程序才能使其工作?
模型关注 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
客户端模型上发生了同样的错误,所以我猜有些东西不适用于我的关注负载。
我已经尝试过自动加载config/application.rb 中的路径而不做任何更改。
我不知道如何使关注的负载起作用,任何帮助都会很棒。谢谢!
【问题讨论】:
标签: ruby-on-rails devise include ruby-on-rails-5 activesupport-concern