我有tradie
模型,其中包含许多tradie_category
个模型。在tradie的形式中,我添加了以下内容:
= form_for @tradie do |tradie|
= tradie.select :tradie_category_ids, @categories, {}, { multiple: true }
在HTML中,生成以下内容......
<form accept-charset="UTF-8" action="/add_a_tradies/create" class="new_tradie" method="post">
<input name="tradie[tradie_category_ids][]" type="hidden" value="">
<select class="form-control" id="tradie_tradie_category_ids" multiple="multiple" name="tradie[tradie_category_ids][]">
<option value="2">mechanic</option>
<option value="1">plumber</option>
</select>
</form>
我删除了真实性令牌并提交了按钮,因为我的问题没有必要。每当我发布表单时,参数tradie_category_ids
将作为空字符串返回。有什么问题,如何修复它,以便我可以为创建的tradie创建多个tradie类别。?
答案 0 :(得分:8)
此问题似乎也在另一个问题中报告:Why is the first element always blank in my Rails multi-select, using an embedded array?
他们概述了它的规范以及如何在Rails 4中解决它。第二个最受欢迎的响应说明了如何同时应用它的修复。
答案 1 :(得分:1)
试试这个
= form_for @tradie do |tradie|
= tradie.select :tradie_category_ids, @categories, {}, { multiple: "true" or 'true' }
注意
周围的引号{ multiple: "true" or 'true' } in