0

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没有任何更改的情况下自动加载内部路径。

我不知道如何使关注的负载起作用,任何帮助都会很棒。谢谢 !

4

1 回答 1

0

前段时间我遇到了这个问题,经过一番挖掘后,我发现我的关注文件使用大写形式命名(出于某种疯狂的原因)。

所以我将它们从Searchable.rbto重命名searchable.rb,这一切都完成了!:)

PS。如果您使用 git/github,则 diff 不区分大小写,因此如果您将它们重命名为Levelable.rblevelable.rb它不会出现在git status.

干杯

于 2016-08-25T21:01:54.997 回答