有这样一个需求:
有个
model
,叫
Product
,
@product = Product.find(1),
对应的表里有个字段叫code,我想在@product.code的时候返回的不是数据库里存储的值,而是经过一个算法过滤后的值,我就在product的model里定义了一个同名的方法 def code, 在控制台里我测试,@product.code是没问题的,可是在view部分,text_field :product ,:code 返回的还是数据库里默认的值。
来看看text_field源码:
options["value"] ||= value_before_type_cast(object) unless field_type == "file"
关键是这句, 我们只需要加个:value => @product.code就把这个问题解决了。