我在为 Regatta 生成脚手架时遇到问题。当我跑
rails g scaffold Regatta name:string start_date:datetime
我得到一个名为 regattum 的模型和一个名为 regatta_controller 的控制器(而不是 regattas_controller)
invoke active_record
create db/migrate/20110609221608_create_regatta.rb
create app/models/regattum.rb
invoke test_unit
create test/unit/regattum_test.rb
create test/fixtures/regatta.yml
route resources :regatta
invoke scaffold_controller
create app/controllers/regatta_controller.rb
invoke erb
create app/views/regatta
create app/views/regatta/index.html.erb
create app/views/regatta/edit.html.erb
create app/views/regatta/show.html.erb
create app/views/regatta/new.html.erb
create app/views/regatta/_form.html.erb
invoke test_unit
create test/functional/regatta_controller_test.rb
invoke helper
create app/helpers/regatta_helper.rb
invoke test_unit
create test/unit/helpers/regatta_helper_test.rb
invoke stylesheets
相同的 public/stylesheets/scaffold.css
显然这是一个拐点问题,但是每当我修改 /config/initializers/inflections.rb 时,我都会收到一条错误消息:
The name 'Regatta' is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again.
我已经尝试了所有我能想到的让它工作,但我一直收到错误。任何有关解决方案或解决方法的建议将不胜感激!
更新
以下是我尝试过的一些事情:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'regatta', 'regattas'
end
这并没有改变任何东西,所以我尝试了以下一些选项,其中包括不同的组合,但无济于事:
inflect.plural 'regatta', 'regattas'
inflect.singular 'regattas', 'regatta'
inflect.singular 'regatta', 'regatta'
更新 2
这是我在发现自己做错了什么后在 inflections.rb 中使用的代码:
ActiveSupport::Inflector.inflections do |inflect|
inflect.plural 'regatta', 'regattas'
inflect.singular 'regatta', 'regatta'
inflect.singular 'regattas', 'regatta'
end
希望这将有助于将来的人!