ばかげた方法でパラメーターを渡す方法を知っています。例えば、
<%= link_to "Order", new_order_item_path(:item_id => @item.id) %>
OrderItemsController はそれを として受け取りますparams[:item_id] = id
。
問題:
@order_item = OrderItem.new(params)
例外を発生させます (保護された属性を一括割り当てできません: アクション、コントローラー)。次のコードでこれを回避できます。
@order_item = OrderItem.new
@order_item.item_id = params[:item_id]
params[:order_item][:item_id]
コントローラーが最初の方法で動作するために new が必要であることは知っています。私の質問は、どうすればnew_order_item_path
URL を生成できますか? これが大きな問題ではないことはわかっていますが、これを行うためのよりクリーンで適切な方法がわからないことは私を悩ませています。検索してみましたが、無関係な質問/回答/結果しか受け取りませんでした。
ありがとう