has_many关联不尊重自定义变形器

时间:2010-11-09 19:50:14

标签: ruby-on-rails ruby-on-rails-3 inflection

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

答案 0 :(得分:3)

使用:

has_many :reasons_to_sell, :class_name => "ReasonToSell"