5 Stimmen

Wie kann ich erreichen, dass Active Record virtuelle Attribute wie reale Attribute behandelt?

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X