【发布时间】:2018-12-05 19:22:04
【问题描述】:
目前我正在尝试在我调用的哈希中更新单个键“elementOne”的值:section_text
哈希看起来像这样:
section_text => {"elementOne" => "words", "elementTwo" => "other words"}
这是我的模型:
class DynamicElement < ApplicationRecord
has_many :dynamic_page_elements
has_many :dynamic_pages, :through => :dynamic_page_elements
store :section_text, accessors: [ :elementOne, :elementTwo ]
end
我的表单文本区域:
<%= form.text_area :elementOne, value: dynamic_element.section_text["elementOne"] %>
<div class="actions">
<%= form.submit %>
强大的参数
def dynamic_element_params
params.require(:dynamic_element).permit(:style, :description, :section_text, :elementOne)
end
当我运行更新(从“生日礼物!!!”到“生日礼物!!!?”)时,参数准确地显示了我的期望,当 SQL 代码开始运行时,它甚至开始替换有问题的确切键值对。
但是,如您所见,“--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess”已附加到阻止更新继续进行的键中,更不用说它不是我最初想要的格式。
************下面的终端图片*********
如何防止这种情况,以便我可以按原样保存新值? 我做了一些阅读,从我发现听起来好像 rails 正在通过默认序列化程序 YAML 序列化它?
此时有点迷茫,非常感谢任何帮助! (使用 postgresql)
编辑 我什至要走上最好的道路来实现这一点吗?
【问题讨论】:
标签: ruby-on-rails forms hash sql-update