0

我有一个名为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

当我尝试获取 productor 的所有producciones_alternativas 时收到此错误:

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

有任何想法吗?非常感谢

4

3 回答 3

1

我看到其他几个人也有同样的问题。找不到为什么会发生这种情况的答案。所以与此同时,你可以试试这个:

has_many :producciones_alternativas, :class_name => "ProduccionAlternativa"
于 2011-01-08T13:55:59.237 回答
0

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

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

至少,现在它可以按我的意愿工作。谢谢。

于 2011-01-08T19:41:41.183 回答
0

你的失败是你把这两个词都复数化了has_many。你用过:

has_many :producciones_alternativas

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

has_many :produccion_alternativas

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

于 2011-12-30T21:08:47.490 回答