gpt4 book ai didi

ruby-on-rails - 显示复选框列表而不是多选

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

我有一个模型 MyModel具有序列化属性 a ,描述一个符号数组。

此代码有效:

<% form_for @my_model do |f| %>
<%= f.select :a, MyModel::AS, :multiple => true) %>
<% end %>

参数正确:
{ :my_model => { :a => [:a_value1, :a_value2] } }

我想将这个多重选择转换为一组复选框,如下所示:
<% form_for @my_model do |f| %>
<% MyModel::AS.each do |a_value|
<%= f.check_box(:a_value) %>
<% end %>
<% end %>

它也可以工作,但参数根本不一样:
{ :my_model => { :a_value1 => 1, :a_value2 => 1 } }

我想到了两个解决方案来回到第一个解决方案......
  • 改造我的 check_box进入 check_box_tag ,替换多个选择,并添加一些 javascript 以在用户单击 check_box_tags 时“检查”选择值。然后,参数将直接在 Controller 中相同。
  • 在 Controller 中添加一小段代码以“调整”我的参数。

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

    最佳答案

    我找到了一个解决方案,使用我不知道的“多个”选项。

    <% MyModel::AS.each do |a_value| %>
    <%= f.check_box(:a, { :multiple => true }, a_value) %>
    <% end %>

    结果参数有点奇怪,但它应该可以工作。
    {"my_model" => { "a" => ["0", "a_value1", "0", "a_value2", "0"] }

    来自@Viren 的编辑:通过 nil在函数结束时,如
      <%= f.check_box(:a, { :multiple => true }, a_value, nil) %>

    完美地工作。

    关于ruby-on-rails - 显示复选框列表而不是多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899550/

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