{ :multiple => true } %> 我在表单中看到一个完美呈现的多选菜单。 但是,当我提交表单时(在-6ren">
gpt4 book ai didi

ruby-on-rails - 使用简单数组的简单表单多选

转载 作者:行者123 更新时间:2023-12-02 01:58:01 25 4
gpt4 key购买 nike

使用这行代码:

<%= 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" 

显然表单没有正确解释所使用的格式

Controller 更新 Action

@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"]

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

最佳答案

如果你想在你的电池字段中保存一个数组,你可以使用

serialize :battery, Array

在模型中

关于ruby-on-rails - 使用简单数组的简单表单多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18770666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com