1

Rails 2 の動作と同様に、Rails 3 プロジェクトで名前空間のコントローラーを自動的に解決しようとしています。例 (Rails 2):

$ rails pathtest && cd pathtest
$ script/generate controller First
$ script/generate controller first/second
$ script/generate controller first/second/third
$ script/server

リクエスト:

  • /firstは最初のコントローラーにルーティングします
  • /first/secondは 2 番目のコントローラーにルーティングします
  • /first/second/ three は 3 番目のコントローラーにルーティングします

    ただし、Rails 3 では、「ワイルド コントローラー」パスを使用して別のルーティングが行われます。

    $ rails new pathtest && cd pathtest
    $ rails generate controller First
    $ rails generate controller first/second
    $ rails generate controller first/second/third
    
    ## config/routes.rb
    Pathtest::Application.routes.draw do
      match ':controller(/:action(/:id(.:format)))'
    end
    
    $ rails server
    

    リクエスト:

  • /firstは最初のコントローラーにルーティングします
  • /first/secondは first#second にルーティングします
  • /first/second/thirdは first#second :id => 'third' にルーティングされます

    私は、名前空間化されたコントローラーの自動解決のようなものはもう道ではないと考え始めていますか? このような名前空間のコントローラーを自動的に解決する方法を見つけた人はいますか?

    ありがとう!

  • 4

    1 に答える 1

    1

    これを試して:

    Pathtest::Application.routes.draw do
      resources :first do
        resources :second do
          resources :third
        end
      end
    end
    
    于 2011-02-04T20:13:36.320 に答える