在rails中更改生成模型的复数形式?

时间:2010-07-31 13:34:35

标签: ruby-on-rails

我正在使用此命令:

rails generate model DayOfMonth day:integer

Rails生成了模型“DayOfMonth”和表“day_of_months”。

我希望它改为创建表“days_of_month”。

我知道这与Inflector类和初始化文件夹中的inflector.rb有关。

但我不明白如何让它发挥作用。

我正在使用Rails 3。

有人可以帮我解决这个问题,还是指点教程?

由于

3 个答案:

答案 0 :(得分:15)

ActiveSupport::Inflector.inflections do |inflect|
 inflect.irregular 'day of month', 'days of month'
end

阅读:http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html

答案 1 :(得分:6)

您可以编辑迁移,然后添加

Rails 3.2 + / 4 +

class DayOfMonth < ActiveRecord::Base
   self.table_name = "days_of_month"
end

Rails 3

class DayOfMonth < ActiveRecord::Base
  set_table_name "days_of_month"
end

答案 2 :(得分:5)

你必须说一下初始化程序'inflections.rb'中复数形式的'day of day':

ActiveSupport::Inflector.inflections do |inflect|
     inflect.irregular 'day of month', 'days of month'
     inflect.irregular 'day_of_month', 'days_of_month'
end

这对我有用。虽然,在定义与该模型的关联时,我仍然会遇到错误:

has_many :days_of_month