【问题标题】:Rails form_for multiple collection_select, values not selected on form failureRails form_for多个collection_select,表单失败时未选择值
【发布时间】:2015-06-15 02:06:27
【问题描述】:

我不知道为什么,但我的表单没有显示提交时选择的选项,即使 params 哈希显示信息正在返回到页面。

集合选择码:

<%= f.collection_select :post_topic_ids, PostTopic.all, :id, :name, {}, { multiple: true, class: 'form-control' } %>

呈现:

<select multiple="multiple" class="form-control" name="post[post_topic_ids][]" id="post_post_topic_ids">
  <option value="1">Psychology</option>
  <option value="2">Engineering</option>
  <option value="3">Nanotechnology</option>
</select>

表单验证错误后返回的参数

params = {"post"=>{"post_topic_ids"=>["", "1"]}}

更新

我也试过了:

<%= select_tag 'post_topic_ids', options_for_select(PostTopic.all.collect{ |p| [p.name, p.id] }), multiple: true %>

和:

<%= select_tag 'post_topic_ids', options_from_collection_for_select(PostTopic.all, "id", "name"), multiple: true %>

呈现:

<select name="post_topic_ids[]" id="post_topic_ids" multiple="multiple"><option value="1">Psychology</option>
<option value="2">Engineering</option>
<option value="3">Nanotechnology</option></select>

【问题讨论】:

  • 我的“表单未显示提交时选择的选项”是什么意思?
  • 对不起,我的意思是重新加载表单时未选择选项...由于验证错误导致表单提交失败后
  • 好的。我明白了。请发布您的控制器代码。

标签: ruby-on-rails


【解决方案1】:

第三个参数需要指定选择哪个元素

<%= select_tag 'post_topic_ids', options_for_select(PostTopic.all.collect{ |p| [p.name, p.id] }, --->selected_element<---), multiple: true %>

查看http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/options_for_select 中的一些示例。

【讨论】:

  • 我使用 @post.post_topic_ids}, { multiple: true, class: '表单控制' } %>
猜你喜欢
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 2014-12-02
  • 1970-01-01
  • 2014-07-27
  • 2015-08-12
  • 1970-01-01
相关资源
最近更新 更多