Rails - 将参数传递给表单

时间:2013-04-19 17:48:56

标签: ruby-on-rails forms params

我有以下情况:

在应用程序中有客户端和项目。客户可以拥有许多项目,项目属于客户。我用脚手架创造了一切,关系也起作用。我可以在客户端上创建一个参考项目。

但是现在我想在客户端的视图中创建一个按钮,该按钮链接到“新项目表单”并将当前客户端作为参数传递。由于客户应该预先设置在新项目的表单中。

我尝试通过以下方式传递参数:

<%= link_to "New Project", new_project_path(:project => { :client_id => @client.id } ), :class => 'btn btn-primary' %>

但我不知道我现在如何在新项目表单中使用param:client_id。或者可以在项目控制器中直接执行此操作。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您可能应该使用nested resource设置polymorphic association。这样您就不需要传递client_id。研究这两个主题应该会有很大帮助。

以下是我使用简单表单隐藏下拉列表(如果设置了客户端)。如果你正确地建立你的关系,其余的就是Rails魔法。

<% unless @client %>
  <%= f.association :client, prompt: 'Select a client...', label_method: lambda { |client| "#{client.first_name} #{client.middle_name} #{client.last_name}" } %>
<% end %>