我有两个模型,其中has_one belongs_to releationship名为purchase_request(has_one)和purchase_order(belongs_to)。我需要确保purchase_request_id传递给purchase_order,并且它有一个restufl路由,内容如下:
/ purchase_requests /:purchase_request_id / purchase_orders /新
我的控制器的新方法如下所示:
def new
@purchase_request = PurchaseRequest.find_by_id(params[:purchase_request_id])
@purchase_request.purchase_order = PurchaseOrder.new
end
视图中包含:
form_for (@purchase_order, @purchase_request) do |f|
并且我听说如果你这样做,隐藏的字段不是必然的,但它给出了:purchase_request nil在我的表中。我也无法弄清楚如何将@ purchase_request.id放入隐藏字段。非常感谢帮助。
更新
我会使用这个代码<%= f.hidden_field :purchase_request_id, :value=>@purchase_request.id %>
来解决它,但是,这样做我也必须修改编辑方法。
答案 0 :(得分:0)
不确定这是否是正确的方法,但我:
将我的控制器代码更改为:
@purchase_order = PurchaseOrder.new({:purchase_request_id=>params[:purchase_request_id]})
确保我的观点有:
<%= f.hidden_field :purchase_request_id %>
刚刚:
form_for(@purchase_order) do |f|