Проблема с пользовательскими перегибами в 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
в консоли рельсов!