18

という名前のモデルがありActiveDnsます。私が走るとき

rails g scaffold_controller ActiveDns

メッセージが届きます

単数形バージョンを使用して、検出されたモデルの複数形。--force-pluralでオーバーライドします。

これで、コントローラーとビューが単数形ActiveDnと複数形のふりをして生成され、のActiveDnsようなばかげたものが表示されlink_to new_dn_pathます。引数はこれ--force-pluralを修正するようには見えません:

rails g scaffold_controller ActiveDns --force-plural

それでも、名前付き変数を使用するコントローラー@active_dnと、rails3.2.3を使用するビューが生成されますnew_dn_path。を使用して試行の間にファイルを削除していますrails d scaffold_controller ActiveDns

これを行う正しい方法は何ですか?

4

3 に答える 3

17

これを行う正しい方法は何ですか?

語尾変化を使用して、数えられないエンティティを文書化します。

config / initializers / inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.uncountable "ActiveDns"
end

次に、次のようになります。

$ rails g scaffold_controller ActiveDns
      create  app/controllers/active_dns_controller.rb
      invoke  erb
      create    app/views/active_dns
      create    app/views/active_dns/index.html.erb
      create    app/views/active_dns/edit.html.erb
      create    app/views/active_dns/show.html.erb
      create    app/views/active_dns/new.html.erb
      create    app/views/active_dns/_form.html.erb
      invoke  test_unit
      create    test/functional/active_dns_controller_test.rb
      invoke  helper
      create    app/helpers/active_dns_helper.rb
      invoke    test_unit
      create      test/unit/helpers/active_dns_helper_test.rb

これはあなたが望んでいたことですか?

于 2012-08-13T06:44:50.763 に答える
15

rails-3.2でテストしました(rails-3.xで動作するはずです)

を開きconfig/initializers/inflections.rb、ルールを追加します。

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'dns', 'dnses'
end

そして、コントローラーを生成します

rails g scaffold_controller ActiveDns

config/routes.rbそして、ファイルにルートを追加します

resources :active_dnses

次に、次のように表示されます。

$ rake routes

   active_dnses GET    /active_dnses(.:format)          active_dnses#index
                POST   /active_dnses(.:format)          active_dnses#create
 new_active_dns GET    /active_dnses/new(.:format)      active_dnses#new
edit_active_dns GET    /active_dnses/:id/edit(.:format) active_dnses#edit
     active_dns GET    /active_dnses/:id(.:format)      active_dnses#show
                PUT    /active_dnses/:id(.:format)      active_dnses#update
                DELETE /active_dnses/:id(.:format)      active_dnses#destroy
于 2012-08-13T06:58:36.460 に答える
0

私が自分の問題をどのように解決するかについて共有したいと思います。

Pacmanの下の名前のMVCがありData_Warehouseます。

Pacman適切な名詞はどこにありますか。(を使用することはできませんがPacmen、を使用するe必要がありPacmansますs

そしてData_Warehouse、プラットフォーム名のようなものです。(何でもかまいませんが、この場合はDataWarehouse::Pacman

ので、私は持っています

モデル名-models/data_warehouse/pacman.rb

ビュー名-views/data_warehouse/pacmans/index.slim

コントローラ名-controller/data_warehouse/pacmans_controller.rb

問題は、Railsがこのパスを読み取ることです

data_warehouse_pacmans_path

なので

data_warehouse_pacmen_path

複数化のため。

それで

追加することでこれを解決しました

ActiveSupport::Inflector.inflections do |inflect|
   inflect.uncountable %w( pacmans )
end

inflections.rbRailsのファイルに。

これがお役に立てば幸いです

于 2019-04-16T04:25:54.003 に答える