我可以在编辑/更新/创建控制器操作中进行转换,但有更优雅的方法吗?使用集合时,使用value_method / display_method非常容易。但是当我尝试使用一个简单的整数输入字段时,value_method / display_method似乎不起作用,或者我的语法错误。我也很难在谷歌上找到任何关于这个的事情。
理想情况下,该解决方案既适用于新功能,也适用于编辑功能,因此用户始终可以看到/输入表单中的年龄值,但它始终存储为yob。
答案 0 :(得分:0)
您可以在模型级别执行此操作...
class User < ActiveRecord::Base
attr_accessor :age
before_save :determine_year_of_birth
after_find :determine_age
def determine_year_of_birth
self.year_of_birth = Date.today.year - age
end
def determine_age
self.age = Date.today.year - year_of_birth
end
end