gpt4 book ai didi

ruby-on-rails - Rails 3 变形问题

转载 作者:数据小太阳 更新时间:2023-10-29 07:24:07 25 4
gpt4 key购买 nike

我在为 Regatta 生成脚手架时遇到问题。当我运行时

rails g scaffold Regatta name:string start_date:datetime

我得到一个名为 regattum 的模型和一个名为 regatta_controller 的 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

希望这对将来的人有所帮助!

最佳答案

我知道这篇文章很旧,但我想我也会贡献我的发现。

经过大量开发后,我一直在将 rpsec 和 cucumber 集成到我的应用程序中(是的;调皮,调皮)。我想为我的模型生成 rspec stub 并测试我的应用程序单元。我通常能够将关联的迁移移出 db/migrate/并运行“bundle exec rails g”以重新生成脚手架,在本例中为 rspec stub 。这次不行。

<终端>

bundle exec rails g scaffold User email:string ... 
updated_at:datetime roles_mask:integer --trace

invoke active_record

The name 'User' is either already used in your application
or reserved by Ruby on Rails. Please choose an alternative
and run this generator again.

通过暂时注释掉“config/routes.rb”文件中的“devise_for”行,我的问题得到了解决

配置/routes.rb

#devise_for :users

宾果游戏。这并不是 Devise 唯一一次用不那么明显的“黑魔法”让我感到惊讶。当然,一旦生成我的 rspec stub ,我就取消注释该行。现在开始编写我的单元测试!

关于ruby-on-rails - Rails 3 变形问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com