2017-11-25 19 views
0

私は次のエラー取得しています:私はこの上の他のいくつかのSOの答えを見てではなく、午前いるこのルートは欠落:ルート定義on Railsのアクションキー

resources :groups do 
    post '/groups/:id/add', on: :member 
end 

については

Missing :action key on routes definition, please check your routes.

を私を助けるものを見つけることができます。何がactionですか?

答えて

0

これは経路を定義する正しい方法ではありません。実際には、ルータのメンバー/コレクションは、ルートを生成するためにキーと値のペアを受け入れます。 /groups/add

resources :groups do 
    collection do 
    post :add 
    end 
end 

はあなたを願って:あなたは、それが生成されますcollectionを使用する場合はgroups/1/add

resources :groups do 
    member do 
    post :add 
    end 
end 

それはのようなルートを生成します:あなたはmember関数を定義しているとして、それは次のようになりますアイデアを得る。

それとも あなたは以下のように、この特定のアクションのために特定のルートを定義することができます。action

match "/groups/:id/add" => "groups#add", via: :post 
0

キーここでは、コントローラのアクションを意味しています。

のように、Railsはパスからのアクションを推論することはできません。しかし、代わりにアクションを定義すれば、レールは自動的にパスを把握します:

resources :groups do 
    post :add, on: :member 
end 
関連する問題