2010-09-09 62 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 

但我真的不知道爲什麼它的工作原理,它是否有任何副作用,這似乎是一個黑客。

回答