Ruby on Rails 3.0.3中的自定义变形问题

我有一个名为produccion_alternativa的模型。 我在config / initializers / inflections.rb中添加了一个新的变形规则,如下所示:

inflect.irregular('produccion_alternativa', 'producciones_alternativas') 

我有一个名为productor的模型与produccion_alternativa有关系:

 class Productor < ActiveRecord::Base has_many :producciones_alternativas class ProduccionAlternativa < ActiveRecord::Base belongs_to :productor 

当我尝试获取制作者的所有producciones_alternativas时 ,我收到此错误:

 irb(main):010:0> Productor.first.producciones_alternativas NameError: uninitialized constant Productor::ProduccionesAlternativa 

有任何想法吗? 非常感谢你

我看到其他几个人有同样的问题。 无法找到答案为什么会发生这种情况。 所以在此期间你可以试试这个:

 has_many :producciones_alternativas, :class_name => "ProduccionAlternativa" 

我也找到了另一个解决方案 我在inflection.rb上添加了另一条规则:

 inflect.irregular('ProduccionAlternativa', 'ProduccionesAlternativas') inflect.irregular('produccion_alternativa', 'producciones_alternativas') 

至少,现在它正在按我的意愿工作。 感谢名单。

你的失败是你在has_many关联中复数了两个单词。 你用过:

 has_many :producciones_alternativas 

但基于类名ProduccionAlternativa ,复数是produccion_alternativas因为只有最后一个词是复数! 所以这应该工作:

 has_many :produccion_alternativas 

要在rails控制台中检查单词类型"your_word".pluralize的复数!