Rails 4:更新复选框

时间:2015-09-22 01:53:54

标签: ruby-on-rails ruby

我有一个数组作为对象的字段,我有更新它的问题。

### members_controller.rb

 :special_role_attributes => [:member_id, :position_name => []]

 def update
    @member = Member.find(params[:id])
 end

### _form.html.erb

<%= f.fields_for :special_role do |special| %>
 <%= special.collection_check_boxes :position_name, @special_positions, :position_name, :position_name %>
<% end %>

我可以保存得很好,但是当我点击update时,复选框就不会被检查。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您需要序列化数组position_name。在你的模型中添加它

serialize :position_name, Array

要删除空白值,请添加此

before_validation :cleanup_position_name

def cleanup_position_name
  position_name.reject!(&:blank?)
end