2017-09-15 18 views
0

私は新しいリソースルートに関する投稿要求をすることができ、問題を抱えています。現在、私は私のroutes.rbファイル「新しい」リソースを投稿して取得するには?

resources :shipments, only: [:new] do 
end 

でこれを持っていると私は、ブロック間でpost :newを入れて試してみたが、それは私の

shipments POST /:slug/shipments(.:format) shipments#new

を与えますが、私はこの

new_product_shipment GET|POST /:slug/shipment/new(.:format)

をしたいです

答えて

0

このようにすることができます:

resources :orders, only: [:new] do 
    collection do 
    post 'new' 
    end 
end 

しかし、ところで、1つのアクションで両方のメソッドを持つことは非常に奇妙な決定です。あなたがRESTfulなルートを持っていないので

+0

POST /:スラグ/出荷(。 :フォーマット)出荷品#新しい '、とにかくそれを新しいものと組み合わせるには?または、私はちょうどmatchと 'via:[:get、:post] 'を使って新しい経路を作るべきですか? – cvDv

+0

@cvDv' post:new'ではなく 'post' new''を使っていますか?確かに、マッチを使って同じことを実装することができます。私は最初の形式に似ています。 – unkmas

0

、あなたがroutes.rbのトップレベルにmatchを使用し、resourcesブロックを必要としません:

出荷 `私を与えてしまい
match '/:slug/shipment/new', to 'shipments#new', via: [:get, :post] 
関連する問題