Проблема с пользовательскими перегибами в Ruby on Rails 3.0.3 - PullRequest
0 голосов
/ 08 января 2011

У меня есть модель с именем 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 ]

1 голос
/ 08 января 2011

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

has_many :producciones_alternativas, :class_name => "ProduccionAlternativa"
0 голосов
/ 31 декабря 2011

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

has_many :producciones_alternativas

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

has_many :produccion_alternativas

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

0 голосов
/ 08 января 2011

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

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

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

...