1

我有一个包含 Requests 和 Workorders 表的 Rails 应用程序。

我在请求显示页面上有一个新工作订单按钮。我需要将信息从请求传递到工作订单——例如 Request.id。

我目前正在使用闪存来执行此操作。这是请求显示页面上的按钮:

<%= link_to 'New Work Order', new_workorder_path, :class => 'btn btn-primary', :onclick =>  (flash[:request_id] = @request.id  %>

在新的工单表格中,我有:

  <% if flash[:request_id] != nil %>
     <%= f.hidden_field :request_id, :value => flash[:request_id] %> 

这行得通。但不总是。而且我一直无法弄清楚为什么它有时会失败。

有没有更好的方法来传递这些数据?

谢谢您的帮助!!

UDPDATE1

有时我需要提出不少数据字段。例如:

       <%= link_to 'Follow-up Work Order', new_workorder_path, :class => 'btn btn-primary', :onclick => ( flash[:workorder_id] = @workorder.id, flash[:client_id] = @workorder.client_id, flash[:contact_id] = @workorder.contact_id, flash[:location_id] = @workorder.location_id, flash[:type_id] = @workorder.type_id, flash[:woasset_id] = @workorder.woasset_id) %>
4

1 回答 1

3

您可以尝试将参数传递给链接的路径,然后通过控制器的操作将其传递给表单:

关联:

<%= link_to 'New Work Order', new_workorder_path(request_id: @request.id), :class => 'btn btn-primary' %>

控制器

def new
  @request_id = params[:request_id]
  ...
end

在您看来:

<%= f.hidden_field :request_id, value: @request_id %>
于 2013-04-29T12:54:57.093 回答