4

レガッタのスキャフォールドの生成に問題があります。私が走るとき

rails g scaffold Regatta name:string start_date:datetime

regattumという名前のモデルと(regattas_controllerの代わりに)regatta_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

うまくいけば、これは将来誰かを助けるでしょう!

4

2 に答える 2

1

アプリケーションですでに使用されているというエラーメッセージRegatta(明らかにRailsによって予約されていない)を考えると、Regattumモデルはまだ存在していると思います。

足場を破壊して再試行することをお勧めします。アプリケーションで単語がすでに定義されていると、Railsには語尾変化に対する保護機能が組み込まれているようです。したがって、このエラーがスローされるのは、まさにこの状況での予期しない動作から保護するためです。

于 2011-06-09T23:01:34.110 に答える