2

我有以下情况:

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

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

我试图通过传递参数来做到这一点,如下所示:

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

但我不明白我现在如何在新项目表单中使用参数 :client_id 。或者可能有其他方法可以直接在项目控制器中执行此操作。

感谢您的帮助!

4

1 回答 1

0

您可能应该使用可能具有多态关联设置的嵌套资源。这样你就不需要传递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 %>
于 2013-04-19T17:59:54.017 回答