NameError:错误的常量名称

时间:2016-05-20 00:28:08

标签: ruby-on-rails

我在两个模型PointModifier和ManualPoints之间有has_many / belongs_to多态关系。

# ManualPoints Model
has_many :point_modifiers, as: :modifier

# PointModifier Model
belongs_to :modifier, polymorphic: true

我最近在我的测试中发现了这个错误 - NameError: wrong constant name - 将ActiveModel::Serializer添加到我的项目中。它似乎与AMS无关,我之前从未见过这个错误。

1 个答案:

答案 0 :(得分:3)

一点点的调查显示这个错误似乎与常数有关。

http://ruby-doc.org/core-1.9.3/NameError.html

进一步挖掘并且我意识到这个问题与我的灯具有关。

# PointModifiers Fixture
one:
  points: 2
  user_id: 1
  modifier_type: manual_points
  modifier_id: 1

问题在于我错误地将snake_case用于灯具中的多态关系。解决方案是使用CamelCase,如下所示:

# PointModifiers Fixture
one:
  points: 2
  user_id: 1
  modifier_type: ManualPoints
  modifier_id: 1