我知道如何以愚蠢的方式傳遞參數。例如,如何在Rails路由幫助器方法中傳遞參數?
<%= 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_order_item_path
來生成url?我知道這不是一個主要問題,但它讓我感到困惑,我不知道這樣做的更清潔/正確的方式。我嘗試過搜索,但只收到無關的問題/答案/結果。
感謝
10秒問我意識到new_order_item_path(:order_item => {:ITEM_ID => @ item.id})的作品。這感覺有點匪夷所思,但它有效。 – James
你應該發佈作爲答案接受它,我跑了也在這個問題上,可以幫助 –