1

我有一个 user_inputs 表,我在其中将设备订阅状态存储在 sub_status 列下,并且这些订阅状态作为下拉选项存储在同名下。现在,从下拉列表中选择一个选项后,我想将设备资产表中的状态 ID 保存在column_name subscription_status 下,并在浏览器上显示状态。我正在为它尝试collection_select,但它不起作用。

<div class="pluginESV_formfield">
<%= f.label :subscription_status %><br />
<%= collection_select  :sub_status,UserInput.all,:id, :subscription_status %></div>

这给出了错误,错误数量的参数,请帮助我。

这里-

  • :sub_status 是具有下拉选项的字段。
  • UserInput 是这些状态的来源模型。
  • :id 是 user_inputs 表中 sub_status 的索引
  • :subscription_status 是设备资产表中将存储选定 ID 的列。我没有得到代码有什么问题。

这个你能帮我吗。

4

1 回答 1

1

对于equipment_assets带有字段的表subscription_status,您需要更新collection_select如下:

<%= collection_select :equipment_asset, :subscription_status, UserInput.all, :id, :sub_status %>

根据collection_select语法,即

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

你错过了这个object论点,这就是你得到错误的原因wrong number of arguments。它是一个强制性参数,因为它有助于select正确地形成 HTML 元素,id因此name在提交表单时,select下拉的选定值将正确地传递到 params 哈希中。

于 2014-04-14T13:25:50.833 回答