Wie erzeuge ich in Rails 3 ein Gerüst für den Datentyp mit "extra Beschreibung"?
Vom Ruby on Rails: beste Methode im Umgang mit Währung /Geldwie Sie erstellen Sie ein Gerüst für das folgende:
add_column :items, :price, :decimal, :precision => 8, :scale => 2
Wie:
rails generate scaffold LineItem name:string \
price:decimal {:precision => 8, :scale => 2}
Auch, was ist der korrekte Begriff für "zusätzliche Beschreibung" für den Typ "decimal"?
Arbeiten in Rails 3.07, Ruby 1.92
InformationsquelleAutor der Frage B Seven | 2012-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Rails 3.1 und unten, die syntax ist
und dann manuell hinzufügen, die dezimal-Eigenschaften, um die migration-Datei
In Rails 3.2können Sie den dezimal-Eigenschaften
HINWEIS: Wenn Sie mit ZSHdie syntax erfordert ein Bindestrich statt einem Komma.
Einer ANDEREN ANMERKUNG: Wenn Sie die bash benutzen, unter Mac OS X 10.9 versuchen, einen Punkt statt des Kommas
InformationsquelleAutor der Antwort scarver2
Fast ein Jahr später. Rails 3.2.11. Regelmäßige bash-shell. Schienen Gerüst schafft Chaos mit syntax Feldname:decimal{p,s} unabhängig davon,railties offizielle doc.
Die Verwirrung liegt in der einfachen Tatsache, dass die geschweiften Klammern sind meta-Zeichen in der bash (wie auch in anderen shells) und muss escaped werden. Siehe protokolliert Problem 4602 in scaffold-generator-repo.
Wenn Sie die bash benutzen, dann verwenden Sie Punkt statt Komma als workaround.
Richtige Gerüst syntax Feldname:decimal{p.s}
InformationsquelleAutor der Antwort smile-on
Ein paar Jahre später, mit Rails 4.2 und bash (Linux) im folgenden generator-Befehl funktioniert ohne Probleme:
Dies wird korrekt generiert das folgende Beispiel migration:
InformationsquelleAutor der Antwort rkallensee
Neuen Ansatz:
Erstellen, die migration mit nur add_column, z.B.
rails generate migration AddPriceToLineItem price:integer
Bearbeiten Sie dann die migration und ändern Sie es wie Sie es wollen, z.B.
Immer die Befehlszeile genau das richtige zu tun, dies erwies sich als eine große übung in frustration und Verschwendete Zeit für mich in der Vergangenheit. Ich empfehle Ihnen Folgen Sie dieser Prozedur, und bewegen auf.
InformationsquelleAutor der Antwort Michael Durrant
Hier ist, wie ich es gemacht habe:
Den
...
sind alle anderen Felder, die wir brauchen, im Gerüst, wiedate:date
item:string
category:references
...Dann modifizierte ich die migration Aussehen:
Dann
Dieser hält Werte zwischen -999,999.99 999,999.99.
Hier ist etwas (geringfügig) nützliche Referenz: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/TableDefinition.html
InformationsquelleAutor der Antwort B Seven
Dies ist die Genaueste und einfachste Weg, dies zu tun Schienen unter 5.x:
rails generate scaffold LineItem name price:decimal{'8,2'}
Achten Sie besonders auf die einfachen Anführungszeichen verwendet, wenn die Angabe von Maßstab und Genauigkeit.
InformationsquelleAutor der Antwort W.M.