Строительные леса в Rails при определении обнуляемых полей и внешних ключей - PullRequest
2 голосов
/ 30 октября 2010

Я просто разбираюсь с рельсами, но мне нужна небольшая помощь с командой rails generate scaffold.

Вот команда, которую я хотел бы использовать

rails generate scaffold Expense user:??? name:string description:text

Я бы хотел, чтобы поле description было обнуляемым, а поле users связывалось с другой моделью - в этом случае я хотел бы создать внешний ключ для пользователей. Я использую devise инфраструктуру аутентификации.

Я читал, что многие разработчики RoR стараются избегать метода скаффолдинга и вместо этого выбирают ручной подход, но мое веб-приложение довольно простое, и я подумал о том, чтобы пойти по пути скаффолдинга.

1 Ответ

6 голосов
/ 30 октября 2010

Scaffolding генерирует только миграцию, которую вы затем запускаете. После того, как файл сгенерирован, просто откройте сгенерированную миграцию и отрегулируйте любые значения, для которых вам нужны определенные ограничения. По умолчанию столбцы имеют значение NULL, если не указано иное, например:

  create_table "slugs", :force => true do |t|
    t.integer  "sequence",                     :default => 1, :null => false
    t.string   "sluggable_type", :limit => 40
    t.string   "scope",          :limit => 40
    t.datetime "created_at"
  end

Это код, сгенерированный плагином friendly_id, поскольку вы можете видеть, что они указали, что столбец последовательности не может быть пустым, в то время как другие поля имеют другие ограничения.

...