默认选项不是发送到服务器的参数哈希的一部分

时间:2014-08-25 18:27:55

标签: ruby-on-rails

我有以下选择字段:

  <%= f.select :lead_status_id, LeadStatus.all.collect {|status| [ status.name, status.id ] }, { selected: LeadStatus.where(name: "Initial").first.id }, {class: "form-control", disabled: "disabled"} %>

select的name属性如下所示:lead [lead_status_id]。和这样的选项:

<option selected="selected" value="2">Initial</option>

所以我选择了默认选项,我希望将默认选项发送到服务器。它的唯一目的是让用户知道他们的状态。因此,我设置字段禁用,以便用户无法编辑它。问题是它从未作为发送到服务器的参数哈希的一部分发送,因此我的validates_presence_of:lead_status_id失败。

为什么不用params hash发送到服务器,我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

  

为什么不用params hash发送到服务器,我该如何解决这个问题呢?

如果您查看了您的选择,则表示您已将其停用,并且已停用的字段不会按表单的形式发送。

<强>修正

如果它是输入字段,您只需将其设置为只读,但无法设置select as readonly ,因此您需要更改您的用户界面。您有以下选择:

一个。 根本不显示您的选择并在表单中添加隐藏字段,以便将您的lead_status_id发送到控制器

你可以创建一个div然后让它看起来像css选择。再次在表单中包含隐藏字段,然后将其值设置为默认值