2017-06-29 12 views
0

同じコントローラーに向けたいくつかのレールルートをセットアップしようとしています。「mycontroller」には3つのアクションがあり、リソースによってサポートされていません。これらの3つのアクションは、のは、「アクション1」、「アクション2」それらを呼び出すと、「action3」させ、GETしているので、私はすべてのアクションのために一度Railsルート - 短いResourcefullルート

get "mycontroller/action1" => "mycontroller#action1", as: :action1_mycontroller 

のようなものを設定終わります。

resourceless :mycontroller do 
    get 'action1' 
    get 'action2' 
    get 'action3' 
end 

ありがとうございました。あなたが何かを行う場合は

+0

"namespace" namespace:mycontroller do get "action1" end' – Lucho

答えて

1

rake routesで次に

resources :my_controller, :only => [] do 
    collection do 
    get 'action1' 
    get 'action2' 
    get 'action3' 
    end 
end 

を、あなたが表示されます:あなたはあなたがそれらを好きなようにあなたのパス名を取得するためにas:をいじることができ

action1_my_controller_index GET /my_controller/action1(.:format) my_controller#action1 
action2_my_controller_index GET /my_controller/action2(.:format) my_controller#action2 
action3_my_controller_index GET /my_controller/action3(.:format) my_controller#action3 

、私は疑います。

それとも、あなたは(あなたが言うように)行う場合:

namespace :mycontroller do 
    get "action1" 
    get "action2" 
    get "action3" 
end 

あなたが得る:

mycontroller_action1 GET /mycontroller/action1(.:format) mycontroller#action1 
    mycontroller_action2 GET /mycontroller/action2(.:format) mycontroller#action2 
    mycontroller_action3 GET /mycontroller/action3(.:format) mycontroller#action3 

を、後者(あなたが)良くあること。

+0

私はこれをバックアップするモデルがないので、私は "reources"を避けようとしていました。とにかくありがとう! ;) – Lucho

+0

私は理解しています。だからこそ私は ':only => []'を実行した。なぜなら、(1)リソースの多いルートは生成されなかったが、(2) 'collection'構文が許可されたからだ。 – jvillian

+1

あなたのバージョンには、アクション名の前に付けるという利点がありますが、より自然な感じです。ありがとうございました! – Lucho

関連する問題