次のネストされた特異ルートがあります。
resources :listings do
resource :logo, only: [ :edit, :update ]
end
期待どおり、2 つの正しいルートが生成されます。
edit_listing_logo GET /listings/:listing_id/logo/edit(.:format) logos#edit
listing_logo PUT /listings/:listing_id/logo(.:format) logos#update
edit_listing_logo_path にリダイレクトすると
redirect_to edit_listing_logo_path( @listing, @logo )
または更新フォームを作成するとき
<%= form_for [ @listing, @logo ] do |f| %>
結果のリンクには、このように最後に常に単一のリソース ID が付加されます
/listings/2/logo.1
このアプリではまだ応答形式を使用していないので、問題なく動作しています。しかし、このリンク生成は奇妙に思え、さまざまな応答形式で使用すると問題が発生することが予想されます。
これは、Rails Nested Singular Resource Routingでも説明されていますが、'show' パスはまったく使用していないことに注意してください。
ご意見ありがとうございます。