移动版本:0.4.2 / Rails 版本:5.2.0.rc1
在使用 Mobility 的 Rails 应用程序中,我的模型结构如下所示:
create_table :settings do |t|
t.string :type
t.jsonb :values, null: false, default: {}
t.timestamps
end
add_index :site_settings, :values, using: :gin
我的模型看起来像这样:
class Setting < ApplicationRecord
extend Mobility
translates :values
end
在值列中,我保存了多个值设置,例如:
Setting.create(values: { setting_1: 'test', setting_2: 'test2' })
在此之前,Mobility 正在按预期工作,并将哈希保存在正确的语言环境中。
但现在我想为其他开发人员提供方便的方法来写入和读取值,例如:
ss = Setting.new
ss.setting_1 = 'test'
ss.setting_2 = 'test2'
ss.save
和阅读方法:
Setting.last.setting_1 => 'test'
我已经尝试过使用store_accessor
自定义访问器,甚至使用自定义访问器,但我无法使用store_accessor
或其他自定义方法正常工作。
有什么帮助吗?
移动配置:
Mobility.configure do |config|
config.default_backend = :jsonb
config.accessor_method = :translates
config.query_method = :i18n
end