我想在我的Ruby应用程序中创建一个以“settings”数据库表为中心的Settings模型。该表如下所示:
==========================
id | key | value
==========================
1 | site_version | 1.0.5
2 | something | value
我希望能够通过此设置模型访问此表中的每一行,就像我使用普通的Ruby哈希一样。所以我可以使用Settings.site_version或Settings ['site_version']来访问“site_version”值。
我知道我以前见过这样的东西,但我没有看到任何东西。我怎么做到这一点?博客文章的链接也足够了。
答案 0 :(得分:1)
您可以在设置模型
中定义类方法def self.my_method(key)
where(key: key).first.try(:value)
end
您可以访问my_method('site_version')
如果你真的想要Hash
:
假设您没有很多记录且所有密钥都是唯一的,您可以
settings = Hash[ Setting.all.map {|s| [s.key, s.value]} ]
settings
是哈希,您可以访问settings['site_version']
注意:如果您在设置表中有其他属性,请不要忘记在查询中使用select。