Mit Fragezeichen in Rails/ActiveRecord-Spalte-name
Im Einklang mit Ruby ' s idiom der mit einem Fragezeichen in der booleschen Methoden (z.B. person.is_smart?
), ich möchte das gleiche zu tun für eine ActiveRecord-Feld in Rails:
rails generate model Person is_smart?:boolean
Habe ich nicht wirklich ausführen der obigen Aussage. Ich gehe davon aus, dass die Datenbank-Felder können nicht haben ein Fragezeichen in Ihnen. Wird rails befassen sich mit diese angemessen? Ist die beste Praxis, lassen Sie einfach die Fragezeichen Weg von Modellen?
Mit Rails 3.2.8
- Warum nicht einfach nennen es
smart
und dann fügen Sie benutzerdefinierte Zugriffsmethoden damit Sie sagen könnenis_smart?
wenn Sie sprechen mit einer realen Person? - Ich denke, das macht am meisten Sinn, da es nicht üblich ist, dass Sie den Namen einer booleschen Variablen, die mit einem Fragezeichen am Ende und wir würden die Behandlung der oben
is_smart?
als eine variable. - Rails ist dein Freund. Sehen Cdesrosiers' Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Rails generiert automatisch die Methode
smart?
wenn es ein Feld namens'smart'
.?
Methoden, die für alle Spalten. Sie erscheinen return true nur, wenn der Wert truthy. Das ist also eine perfekte Ergänzung für Boolesche Werte.present?
, nicht truthy. So "" gibt false zurück, zum Beispiel.present?
github.com/rails/rails/blob/master/activerecord/lib/...Einer "gotcha" zu beachten, wenn Sie geschehen, zu verwenden
:enum
im Modell, da diese speichert den Wert als eine ganze Zahl. Das Fragezeichen attr-Methode durch aktive Datensatz erwartet, zu bewerten, 0 oder 1 als false /true bzw. in der Datenbank. Zum Beispiel:um zu sehen, wie diese Methode funktioniert, sehen Schienen-Quelle
Eigentlich bin ich mit Schienen 4 und ich kann nicht rufen Sie mein Boolesche Spalte, ohne die Fragezeichen