我不断收到此错误:
NameError (uninitialized constant Character::Messagemissife):
uninitialized constant Mime::HTML
错误来自此行:
if @character.messagemissives
character.rb
has_many :messagemissives, dependent: :destroy
messagemissive.rb
class Messagemissive < Missive
self.table_name = 'messagemissives'
belongs_to :character
end
missive.rb
class Missive < ActiveRecord::Base
self.abstract_class = true
end
我上课Messagemissive
,但是没有Messagemissife
。当然,它看起来像是一个错字错误。但是我找不到任何文件中的“ Messagemissife”。我使用了Sublime Text 2中的“查找”功能,使用了Mac Finder搜索,清除了缓存,多次重启了服务器,多次重启了计算机。但是此错误不会消失。我究竟做错了什么?
由于Rails的默认命名约定,您正在看到此行为。当您打电话时@character.messagemissives
,Rails实际上是在寻找带有对应的单数形式的模型,Messagemissife
而不是Messagemissive
。您可以通过键入"Messagemissives".singularize
rails console来确认这一点,它将返回您"Messagemissife"
。
要解决此问题,您可以使用类似的关联提及类名
has_many :messagemissives, class_name: 'Messagemissive'
或如提到这里,在/config/initializers/inflections.rb
,只需添加
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'messagemissive', 'messagemissives'
end
希望这会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句