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

时间:2011-01-08 13:16:58

标签: ruby-on-rails inflection

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

有什么想法吗?非常感谢你

3 个答案:

答案 0 :(得分:1)

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

has_many :producciones_alternativas, :class_name => "ProduccionAlternativa"

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

has_many :producciones_alternativas

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

has_many :produccion_alternativas

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