是否有一种方法可以自动使用ActiveRecord :: Base.store存储的类型转换值?ActiveRecord :: Base.store自动类型转换
拿这个完全不切实际例如:
class User < ActiveRecord::Base
store :settings, accessors: [ :age ]
end
user = User.new(age: '10')
user.age # => '10'
我知道我可以只重写方法读者年龄将其转换为整数,但我很好奇,如果有这样做的一个未公开的方式。
试图避免这种情况:
class User < ActiveRecord::Base
store :settings, accessors: [ :age ]
def age
settings[:age].to_i
end
end
user = User.new(age: '10')
user.age # => 10
更新
寻找类似:
class User < ActiveRecord::Base
store :settings, accessors: {:age => :to_i}
end
或者:
class User < ActiveRecord::Base
store :settings, accessors: {:age => Integer}
end
感谢您的回复,但这不是我正在寻找的。我希望DSL方法内置了一些内容,可以让我设置默认值。 – 2012-07-21 01:15:03
我认为这是违背了散列点,你可以把任何东西放入...但看看周围n祝你好运 – AJcodez 2012-07-21 02:32:51
同意,这是一个完全滥用ActiveRecord和关系数据库。我猜想这更多是好奇心。 – 2012-07-21 02:54:18