我有一个user_inputs表,我将设备订阅状态存储在列sub_status下,这些订阅状态我想作为下拉选项使用相同的名称。现在,从下拉列表中选择一个选项后,我想在 equipment_name_asatus 下的 equipment_assets表中保存状态的ID,并在浏览器上显示状态。 我正在尝试collection_select,但它没有用。
<div class="pluginESV_formfield">
<%= f.label :subscription_status %><br />
<%= collection_select :sub_status,UserInput.all,:id, :subscription_status %></div>
这会产生错误,错误的参数数量,请帮助我。
这里 -
请帮我解决这个问题。
答案 0 :(得分: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
和id
形成name
HTML元素,以便在提交表单时,所选的select
下拉列表值将会传入params哈希正确。