我需要一张名为Campus的桌子。但是rails将其解释为复数,搞砸了一切。 所以我做了一个little research,他们建议添加这样的变形:
ActiveSupport::Inflector.inflections do |inflect|
inflect.singular /^(campus)(es)?$/i, '\1'
inflect.plural /^(campus)$/i, '\1es'
end
我在initializers / inflection.rb文件中添加了这个。 我创建了一个新的迁移来删除表并再次创建一个名为Campus的新表,期望解决问题,但现在我无法在控制台中获取表Campus:
$ rails console
Loading development environment (Rails 3.0.10)
1.9.2p290 :001 > Campus
=> Campus(Table doesn't exist)
我做错了什么?我该如何解决这个问题? 谢谢你的帮助
我的校园模式是:
class Campus < ActiveRecord::Base
validates_presence_of :name
validates_presence_of :university_id
has_many :pois, dependent: :destroy
has_many :events, dependent: :destroy
has_many :market_items, dependent: :destroy
has_many :ads_points, dependent: :destroy
belongs_to :university
end
答案 0 :(得分:1)
inflectors.rb
有一些标准代码,您可以根据自己的情况进行调整:
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
# inflect.irregular 'person', 'people'
所以对你来说应该是:
inflect.plural /^(campus)$/i, '\1es'
inflect.singular /^(campus)es/i, '\1'
或者这可能更容易:
inflect.irregular 'campus', 'campuses'
使用这些inflectors,Rails将寻找一个名为campuses
的表。由于您的表格名称为campus
,因此您必须将以下内容添加到Campus
模型中:
set_table_name 'campus'
确保在更改inflectors.rb
后重新启动服务器。