因此,我使用關聯創建了一個模型,並使用帶「accepting_nested_attributes_for」的單一表單來創建記錄。在表單中,我有幾個選擇下拉菜單,並不總是需要選擇一個值,當發生這種情況時,我想使用我在遷移中指定的默認值。不使用遷移中的默認值
因此,如果我提交表單時沒有從下拉列表中選擇任何東西,我會得到Mysql抱怨試圖插入NULL。我認爲表單中的空字符串會在mysql中使用默認的遷移值/默認值,而不是試圖插入NULL?
我錯過了什麼嗎?提前致謝。
編輯:一些代碼...(簡體)。 「book_type」實際上應該是「book_type_id」,但是忽略它。
MySQL錯誤信息:
Mysql::Error: Column 'book_type' cannot be null: 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
你能告訴你的遷移和特定的MySQL錯誤請的細節? – bjg 2010-07-07 10:58:28
增加了一些更多的細節...我知道有人會要求更多的信息。 =) 所以在book_type下拉我不想要求用戶輸入的形式,當他們不選擇任何我想要的條目爲0. – james 2010-07-07 11:08:03