Rails =帮助form_for传递两个模型

时间:2011-08-18 19:01:56

标签: ruby-on-rails ruby-on-rails-3 controller

我有两个模型,其中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 %>来解决它,但是,这样做我也必须修改编辑方法。

1 个答案:

答案 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|