Am 16.07.2007 um 17:25 schrieb Thomas Preymesser:
On 16/07/07, Bernd Schmeil <[EMAIL PROTECTED]> wrote:
Ich habe keine Ahnung was Du mit enum Felder meinst, aber Du kannst
im Model explizit set_primary_key "enum_feld" setzen und in den
Migrations
mit execute "insert into enum_tabelle ..." arbeiten.
enum- oder enumeration (Aufzählung) sind Felder die nur eine
der definierten Werte annehmen können. Du kannst bei Datenbanken
oder auch in anderen Programmiersprachen sagen, dieses Feld kann
beispielsweise nur die Werte 'rot', 'gelb', 'grün' annehmen. Falls
etwas anderes zugewiesen wird, dann ist dies ein Fehler.
Railsway-ig wäre ja, die Constraints eben nicht in der Datenbank zu
definieren. Enum-Felder sind (zumindest in MySQL, zumindest als ich
mich noch mit sowas beschäftigt habe) ja eh eher so varchar-artig.
Meine Idee wäre also die Einschränkung auf 'rot', 'gelb','grün' eher
über validations im Modell abzuhandeln. Das ginge z.B. über ein
validates_format_of oder gar über ein
def validate
unless ['rot','gelb','gruen'].include? mein_enum_feld
errors.add('blah')
end
end
Das liess sich sicher auch sehr gut in einen helper oder sowas
verpacken.
Dass diese Idee nicht sehr DBA-Konform ist, ist mir klar, ist aber
kompatibel über alle db's und machts halt im ruby-code und nicht im SQL.
Gruß,
Jan
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug