Проблема с пользовательскими перегибами в Ruby on Rails 3.0.3

У меня есть модель под названием produccion_alternativa. Я добавил новое правило перегиба в config/initializers/inflections.rb, например так:

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

У меня есть другая модель, называемая продюсер, которая имеет отношение к 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 ответа

Я вижу несколько других, имеющих такую ​​же проблему. Не могу найти ответ, почему это происходит. Так что пока вы можете просто попробовать это:

has_many :producciones_alternativas, :class_name => "ProduccionAlternativa"

Я нашел другое решение тоже. Я добавил еще одно правило на inflection.rb:

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

По крайней мере, теперь это работает, как я хочу. Thanx.

Ваш провал в том, что вы перевели в оба слова has_many ассоциация. Ты использовал:

has_many :producciones_alternativas

но на основе имени класса ProduccionAlternativa множественное число produccion_alternativas потому что только последнее слово во множественном числе! Так что это должно работать:

has_many :produccion_alternativas

Чтобы проверить множественное число типа слова "your_word".pluralize в консоли рельсов!

Другие вопросы по тегам