rails-settings获取密钥的所有设置

时间:2018-06-19 10:25:43

标签: ruby-on-rails ruby rubygems

我的项目中有ledermann-rails-settings,用于存储设置。我想获取密钥的所有设置值。我的模型就像

class Prescription < ActiveRecord:Base 
  has_settings do |s|
    s.key :print_options ,:defaults=> {:medication=>true,:medical_history=>false}   
  end
end

我已经浏览了rubydoc上的documention以及git,但找不到一次获取所有值的方法。有all方法可用于设置对象,但在我的情况下它不起作用。如果我Prescription.last.settings(:print_options).all它会返回nil,这是因为它认为all是一个键并尝试为其获取值。

我已经看到了对象结构并看到了存储在设置对象的value属性中的值,可以像

一样获取
Prescription.last.settings(:print_options).value

但问题是它没有返回默认值,而我需要获取所有值(包括默认值)。如果有人为此目的知道任何方法或使用all方法纠正我,请告诉我。

1 个答案:

答案 0 :(得分:1)

Prescription#to_settings_hash可能就是你要找的东西:

Prescription.last.to_settings_hash