微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将多个复选框值保存到一个字符串?

如何解决如何将多个复选框值保存到一个字符串?

我使用 Rails 6.1 和 gem simple_form。 我想在一个对象(字符串序列化或数组)中保存多个复选框的值。我没有找到简单的解决方案。

表格

    class CreateSpots < ActiveRecord::Migration[6.0]
  def change
    create_table :spots do |t|

      t.string :wind_direction

      t.timestamps
    end
  end
end

_form.html.erb

<%= simple_form_for (spot) do |f| %> 
  <%= f.input :wind_direction,as: :check_Boxes,collection: Spot::DIRECTION %>
  <%= f.submit %>
<% end %>

型号

  class Spot < ApplicationRecord
  DIRECTION = ['N','NW','W','SW','S','SE','E','NE']
  end

提交表单后,wind_direction输出为Nil

理想情况下,我寻找一个字符串,实际上我使用这种格式。

wind_direction: "[\"W\",\"NW\",\"N\",\"NE\",\"E\"]",

感谢您的建议

解决方法

我找到了一个解决方案,我创建了一个像这个例子中的连接表。这似乎是处理复选框的可靠方法

https://www.sitepoint.com/save-multiple-checkbox-values-database-rails/

然后我用 .to_json

序列化结果

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。