gpt4 book ai didi

ruby-on-rails - 在 Rails 中获取和设置 json 列键的好方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:47 25 4
gpt4 key购买 nike

我有一个模型/表,其中有一个 json 列,如下所示

t.json :options, default: {}

列中可以包含很多键,像这样

options = {"details" : {key1: "Value1", key2: "Value2"}}

我想轻松地设置和获取这些值。所以我制作了相同的 getter 和 setter。

def key1
options['details']&.[]('key1')
end

def key1=(value)
options['details'] ||= {}
options['details']['key1'] ||=0
options['details']['key1'] += value
end

但这只是在我的代码中添加了行,并且在添加更多细节时它不会扩展。你能建议一种干净整洁的方法吗?

最佳答案

使用动态方法创建:

options['details'].default_proc = ->(_,_) {{}}
ALLOWED_KEYS = %i[key1 key2 key3]

ALLOWED_KEYS.each do |key|
define_method key do
options['details'][key] if options['details'].key?(key)
end
define_method "#{key}=" do |value|
(options['details'][key] ||= 0) += value
end
end

关于ruby-on-rails - 在 Rails 中获取和设置 json 列键的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54587936/

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