Итак, у меня есть модель с ассоциацией, и я использую одну форму с "accepts_nested_attributes_for" для создания записей. В форме у меня есть несколько выпадающих списков для дочернего элемента, которые не всегда должны иметь выбранное значение, и когда возникает такая ситуация, я хочу использовать значение по умолчанию, указанное в моей миграции.
Поэтому, если я отправляю форму, не выбирая ничего из выпадающего меню, я получаю жалобу на Mysql, пытаясь вставить NULL. Я думал, что где-то вдоль строк пустая строка из формы будет использовать значение миграции по умолчанию / значение по умолчанию в MySQL вместо того, чтобы пытаться вставить NULL?
Я что-то упустил? Заранее спасибо.
Редактировать: некоторый код ... (упрощенно). «book_type» действительно должен быть «book_type_id», но не обращайте на это внимания.
Сообщение об ошибке Mysql:
Mysql :: Ошибка: столбец 'book_type' не может быть пустым: INSERT INTO book_details
(book_id
, book_type
, ...) VALUES (1, NULL, ...)
Миграция:
class CreateBookDetails < ActiveRecord::Migration
def self.up
create_table :book_details do |t|
t.integer :book_id, :null => false, :default => 0
t.integer :book_type, :null => false, :default => 0
...
t.timestamps
end
end
def self.down
drop_table :book_details
end
end