JSONB:store_modelgem。修改发布数据的内容
JSONB: store_model gem. Modify content on posting data
我正在使用 StoreModel gem 将我的 JSON 支持的数据库列 setting
包装成类似 ActiveModel 的 类。这是我的模型简化模型
class Entity < ApplicationRecord
attribute :settings, Setting.to_type # settings is a jsonb datatype in the database
end
class Setting
include StoreModel::Model
attribute :setting1, :boolean
attribute :setting2, :boolean
attribute :setting3, :boolean
end
对于表格,我有以下内容
<%= form_for @entity do |f| %>
<%= fields_for :settings, @entity.settings do |ff| %>
<%= ff.check_box :setting1 %>
<%= ff.check_box :setting2 %>
<% end %
<% end %>
对于现有记录,这将覆盖我的实体模型的设置属性中的所有值,因此它将设置 setting3 no null(表单/参数未传递)!我如何提交值以保留现有值并仅修改我提交的值。
在 GitHub issue earlier, TLDR it's not possible out–of–the–box, but there is a workaround 中讨论过。
我正在使用 StoreModel gem 将我的 JSON 支持的数据库列 setting
包装成类似 ActiveModel 的 类。这是我的模型简化模型
class Entity < ApplicationRecord
attribute :settings, Setting.to_type # settings is a jsonb datatype in the database
end
class Setting
include StoreModel::Model
attribute :setting1, :boolean
attribute :setting2, :boolean
attribute :setting3, :boolean
end
对于表格,我有以下内容
<%= form_for @entity do |f| %>
<%= fields_for :settings, @entity.settings do |ff| %>
<%= ff.check_box :setting1 %>
<%= ff.check_box :setting2 %>
<% end %
<% end %>
对于现有记录,这将覆盖我的实体模型的设置属性中的所有值,因此它将设置 setting3 no null(表单/参数未传递)!我如何提交值以保留现有值并仅修改我提交的值。
在 GitHub issue earlier, TLDR it's not possible out–of–the–box, but there is a workaround 中讨论过。