【问题标题】:Rails - pass a parameter to a formRails - 将参数传递给表单
【发布时间】:2013-04-19 17:48:56
【问题描述】:

我有以下情况:

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

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

我尝试通过以下方式传递参数来做到这一点:

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

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

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails forms params


    【解决方案1】:

    您可能应该使用nested resourcepolymorphic 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 %>
    

    【讨论】:

    • 谢谢!观看了有关嵌套资源的截屏视频并立即实现了它:)
    • 很高兴你找到了你要找的东西!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多