2010-09-09 68 views
5

我很高兴在Rails模型上使用虚拟属性,如果它们是字符串的话,但我还想使用其他类型的属性,比如日期或布尔值,以便我可以使用像date_select这样的助手来设置虚拟属性。我如何使用真实属性来处理虚拟属性?

有没有这样做的好方法?

目前的情况是,使用一个虚拟属性的date_select助手提出:

1 error(s) on assignment of multiparameter attributes 

而如果我想要一个布尔属性,我结束了@v_attribute = "true",而不是@v_attr = true


我在什么地方找到一个例子似乎工作:

class MyModel 
    #virtual attribute 
    attr_accessor :v_date_field 
    attr_accessible :v_date_field 

    columns_hash["virtual_date_field"] = ActiveRecord::ConnectionAdapters::Column.new("vi_date_field", nil, "date") 
end 

但我真的不知道为什么它的工作原理,它是否有任何副作用,这似乎是一个黑客。

回答