【发布时间】:2011-08-05 15:36:57
【问题描述】:
我正在尝试使用复选框中的值填充数组。创建记录时它工作得很好,但在编辑时验证失败。参数看起来正确,这让我很困惑:
"record"=>{... "type_array"=>["accounting"], ...}
它看起来与创建新记录的参数相同。 New.html.erb 和 Edit.html.erb 中的字段也使用相同的标记。
Edit.html.erb
<div class="field">
<%= f.label :type_array, "What type of record?" %><br />
<% ["accounting", "agriculture", "automotive"].each do |type| %>
<%= check_box_tag 'record[type_array][]', type, (true if @record.type_list.include? type),
:id => type %>
<%= label_tag type, type.titleize, :class => type %><br />
<% end %>
</div>
记录部分.rb
validates :type_array, :presence => true
attr_accessor :type_array
attr_accessible :type_array
before_validation :set_type_list
private
def set_type_list
self.type_list = type_array.join ',' if type_array.present?
end
我错过了什么吗?当我删除 type_array 验证并填写表单时,它的行为就像 type_array 为空一样。沿着这条线的某个地方,它一定是丢失了或什么的。
感谢您的帮助。
(旁注:如果有人有更好的方法来制作复选框列表,请告诉我)
【问题讨论】:
标签: ruby-on-rails validation activerecord