Ich bin glücklich genug mit virtuellen Attributen auf einem Rails-Modelle, wenn sie Strings sind, aber ich möchte auch andere Arten von Attributen, wie Daten oder Boolesche verwenden, so dass ich Helfer wie date_select verwenden können, um virtuelle Attribute zu setzen.
Gibt es eine gute Möglichkeit, dies zu tun?
Derzeit führt die Verwendung eines date_select-Helpers für ein virtuelles Attribut zu Problemen:
1 error(s) on assignment of multiparameter attributes
Wenn ich jedoch ein boolesches Attribut möchte, muss ich mit @v_attribute = "true"
statt @v_attr = true
.
Ich habe irgendwo ein Beispiel gefunden, das zu funktionieren schien:
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
Aber ich weiß nicht wirklich, warum es funktioniert, ob es irgendwelche Nebenwirkungen hat, und es scheint ein Hack zu sein.