【问题标题】:Rails Form_For Select With Dual PurposeRails Form_For Select 两用
【发布时间】:2013-02-10 16:35:09
【问题描述】:

我有添加新工作的表格。在我的表单上,我有一个选择下拉列表。我需要将新工作与客户相关联。以下效果很好。

<%= f.collection_select :customer_id, Customer.all, :id, :business_name %>

但是,如果我还希望能够将 customer_id 发送到新表单怎么办?我可以让表单的选择下拉菜单显示所有可能的客户,如上所述,但如果传入了 customer_id,它会自动选择我传递到表单中的 customer_id 吗?

url = ...工作/新

url = ...jobs/new?customer_id=5

如果我没有很好地解释这一点,我深表歉意。 提前致谢。 --jc

【问题讨论】:

    标签: ruby-on-rails forms form-for html-select


    【解决方案1】:

    如果请求参数中存在 customer_id,我认为您可以通过填充您在控制器中创建的作业的 customer_id 字段来完成您想要实现的目标。这应该使该特定客户成为表单中最初选择的选项。

    http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select

    例如类似的东西。

    if params[:customer_id].present?
        job.customer_id = params[:customer_id]
    end
    

    【讨论】:

    • 感谢您的提示。在“终于”在此站点中找到类似问题之后,这对我有用。很抱歉没有早点看到这个。
    【解决方案2】:

    如果您在控制器操作中声明实例变量@customer,那么您可以将选定选项用作:

    <%= f.collection_select :customer_id, Customer.all, :id, :business_name, {:selected => @customer.id} %>
    

    【讨论】:

    • !params[:customer_id].nil? ?参数 [:customer_id] : '' } %>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多