谷歌搜索爲此,我看到Rails核心團隊正在爲Rails 4開發一個解決方案,但這是一種解決方法。無法創建記錄,因爲連接表需要created_at(HABTM + Rails)
Users
和Circles
都與另一個具有has_and_belongs_to_many
關係。
我的模式是這樣的:
create_table "circles", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "circles_users", :force => true do |t|
t.integer "circle_id"
t.integer "user_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "users", :force => true do |t|
t.string "name"
t.string "email"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "password"
end
但在我的代碼,在我circles_controller
當我嘗試這樣做:
def create
@circle = Circle.new(params[:circle])
@circle.users << User.find(session[:user].id)
...
我得到了我的瀏覽器中出現以下錯誤:
SQLite3::ConstraintException: circles_users.created_at may not be NULL: INSERT INTO "circles_users" ("circle_id", "user_id") VALUES (11, 5)
我該怎麼處理created_at
和updated_at
在這裏是錯誤的嗎?
爲了您的信息:has_and_belongs_to_many也被稱爲「多對多」的關係。 – Kamil