Die*_*uto 24 forms has-and-belongs-to-many ruby-on-rails-4
虽然代码似乎是正确的,但当我尝试发送表单时,多次选择的值不会被发送.
如果我只删除多个选项,一切都按预期工作,只考虑一个值,但每个事务存储多个标记很重要.
模型
Transaction.rb
class Transaction < ActiveRecord::Base
has_and_belongs_to_many :tags
Run Code Online (Sandbox Code Playgroud)
Tag.rb
class tag < ActiveRecord::Base
has_and_belongs_to_many :transactions
Run Code Online (Sandbox Code Playgroud)
视图
<%= form.collection_select :tag_ids, @tags, :id, :name, {},
{:multiple => true} %>
Run Code Online (Sandbox Code Playgroud)
结果:
<select id="transaction_tag_ids" multiple="multiple" name="transaction[tag_ids][]">
<option value="1">..</option>
</select>
Run Code Online (Sandbox Code Playgroud)
Ast*_*ery 41
请确保您正确允许接收的参数进行质量分配.
你说过一个参数是有效的,所以我假设你控制器里有什么东西:
params.require(:transaction).permit(:name, :tag_ids)
Run Code Online (Sandbox Code Playgroud)
所以你需要允许接收一个数组:
params.require(:transaction).permit(:name, :tag_ids => [])
Run Code Online (Sandbox Code Playgroud)