相关疑难解决方法(0)

显示复选框列表而不是多个选择

我有一个MyModel带有序列化属性的模型a,描述了一个符号数组.

此代码有效:

<% form_for @my_model do |f| %>
  <%= f.select :a, MyModel::AS, :multiple => true) %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

参数是正确的:

{ :my_model => { :a => [:a_value1, :a_value2] } }
Run Code Online (Sandbox Code Playgroud)

我想将这个多选项转换为一组复选框,如下所示:

<% form_for @my_model do |f| %>
  <% MyModel::AS.each do |a_value|
    <%= f.check_box(:a_value) %>
  <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

它也有效,但参数完全不同:

{ :my_model => { :a_value1 => 1, :a_value2 => 1 } }
Run Code Online (Sandbox Code Playgroud)

我想到2个解决方案可以回归到第一个解决方案......

  • 将我check_box转换为check_box_tag,替换多个选择,并在check_box_tags上的用户clic时添加一些javascript以"检查"选择值.然后,参数将直接在控制器中相同.
  • 在控制器中添加一个小代码,以"适应"我的参数.

什么解决方案不那么难看?或者还有其他的吗?

ruby-on-rails ruby-on-rails-2

11
推荐指数
2
解决办法
3万
查看次数

标签 统计

ruby-on-rails ×1

ruby-on-rails-2 ×1