Ассоциация has_many не уважает пользовательский инфлектор - PullRequest
2 голосов
/ 09 ноября 2010

У меня есть модель под названием reason_to_sell.Ruby будет умножать это на reason_to_sells, поэтому я добавил это:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural 'reason_to_sell', 'reasons_to_sell'
end

Это прекрасно работает в консоли:

ruby-1.8.7-p302 > "reason_to_sell".pluralize
 => "reasons_to_sell"

Каждая причина продажи принадлежит пользователю:

class ReasonToSell < ActiveRecord::Base
  belongs_to :user

И, конечно, у каждого пользователя может быть много причин для продажи:

class User < ActiveRecord::Base
  has_many :reasons_to_sell

Однако, это дает мне:

ruby-1.8.7-p302 > u.reasons_to_sell
NameError: uninitialized constant User::ReasonsToSell

Но если я поменяю пользователя на множествопричина продажи, все становится лучше:

ruby-1.8.7-p302 > u=User.first ; u.reason_to_sells
 => [] 

Итак, что мне нужно сделать, чтобы заставить перемычку reason_to_sell работать с этой ассоциацией моделей?

1 Ответ

3 голосов
/ 09 ноября 2010

Использование:

has_many :reasons_to_sell, :class_name => "ReasonToSell"
...