Bea*_*eau 8 forms settings activerecord ruby-on-rails
我有一个Rails 3应用程序需要一些用户定义的设置.我想使用这个https://github.com/ledermann/rails-settings插件.我让它在rails控制台中工作.但我无法在表格中工作.我是否使用fields_for和attr_accessible?如果是这样我没有运气.
我需要为两个模型添加设置:
例如,特定于用户的设置,
user = User.find(123)
user.settings.color = :red
user.settings.color
# => :red
user.settings.all
# => { "color" => :red }
Run Code Online (Sandbox Code Playgroud)
(以上在控制台中对我来说很好.)
但我需要通过标准的Web表单来管理它们.我很想知道其他人是如何处理这件事的.
谢谢.
Nyc*_*cen 14
我所做的是将动态setter/getter添加到我的User类中
class User < ActiveRecord::Base
has_settings
def self.settings_attr_accessor(*args)
args.each do |method_name|
eval "
def #{method_name}
self.settings.send(:#{method_name})
end
def #{method_name}=(value)
self.settings.send(:#{method_name}=, value)
end
"
end
end
settings_attr_accessor :color, :currency, :time_zone
end
Run Code Online (Sandbox Code Playgroud)
这样,您就可以像使用User模型的任何其他属性一样使用"color".此外,添加更多设置非常简单,只需将它们添加到列表中即可