рубин на рельсах 2.0+ строительные леса - PullRequest
0 голосов
/ 22 июля 2010

Мой вопрос: как найти «тип» для столбца базы данных, в чем разница между текстом / строкой? Могу ли я это выяснить?

script/generate scaffold ModelName field1:type field2:type field3:type
or
script/generate scaffold Post title:string body:text category_id:integer

Ответы [ 3 ]

4 голосов
/ 22 июля 2010

Вот список для базы данных mysql

:binary     blob
:boolean    tinyint(1)
:date     date
:datetime   datetime
:decimal    decimal
:float   float
:integer    int(11)
:string     varchar(255)
:text     text
:time     time
:timestamp  datetime
1 голос
/ 22 июля 2010

Чтобы получить типы для столбца БД в MYSQL, выполните:

desc table_name

В консоли Rails запустите Model.inspect, чтобы получить типы для соответствующих атрибутов таблицы:

 Studio.inspect
=> "Studio(id: integer, name: string, subdomain: string, workdays_mask: integer, created_by: integer, created_at: datetime, updated_at: datetime, workhours: text, template_styles: text, contact_info: text)"
0 голосов
/ 22 июля 2010

Базовые типы действительно зависят от самой базы данных (и реализации драйвера Rails db), но для MySQL:

String: VARCHAR по умолчанию имеет длину 255 - по умолчанию MySQL - если выукажите значение длины / размера (?).

Текст: TEXT или LONGTEXT (http://dev.mysql.com/doc/refman/5.0/en/blob.html)

...