简单形式多个选择与简单数组

时间:2013-09-12 17:26:15

标签: ruby-on-rails simple-form

使用以下代码行:

<%= m.input :battery, :collection => ["1","2","3","4"], :input_html => { :multiple => true } %>

我在表单中看到了一个完美渲染的多选菜单。

但是,当我提交表单时 (选择1和2后)我会收到以下内容:

1.9.3p374 :012 > Style.find(402).battery
  Style Load (1.8ms)  SELECT `styles`.* FROM `styles` WHERE `styles`.`id` = 402 LIMIT 1
 => "---\n- ''\n- '1'\n- '2'\n" 

现在,当我重新加载样式编辑表单时,多选中没有选择任何内容,如果我重新提交,我以前的选择是覆盖

=> "---\n- ''\n" 

显然,表单

没有正确解释所使用的格式

控制器更新操作

@style = Style.find(params[:id]) 
@style.update_attributes(params[:style])

参数哈希

"battery"=>["", "1", "2"]

更新

serialize :battery, Array添加到我的样式模型后,我现在看到了:

Style Load (0.1ms)  SELECT `styles`.* FROM `styles` WHERE `styles`.`id` = 402 LIMIT 1
 => ["", "1", "2"] 

最重要的是,表单现在正在加载数据库数据。

1 个答案:

答案 0 :(得分:2)

如果您想在电池领域保存阵列,可以使用

serialize :battery, Array

在模型中

相关问题