0
class Wall < ActiveRecord::Base
has_many :shelves
end
class Shelf < ActiveRecord::Base
has_many :book
belongs_to :wall
end
class Book < ActiveRecord::Base
belongs_to :shelf
end
CREATE TABLE `walls` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`created_at` DATETIME NOT NULL,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `shelves` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`wall_id` INT(11) NULL DEFAULT NULL,
`created_at` DATETIME NOT NULL,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `books` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`shelf_id` INT(11) NULL DEFAULT NULL,
`created_at` DATETIME NOT NULL,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`)
)
我想從一個貨架移動到另一個一本書,所以我寫的......更新1:N:在ActiveRecord的M相關聯
book.shelf = new_shelf
但這並不照顧所有自動關聯。 當我查詢書架的舊書架時,它會返回我本應移動到另一書架上的書。
我錯過了什麼?
在執行'book.shelf = new_shelf'之後你調用了保存嗎?如果在更新發生之前從前面的數據庫中拉出數據庫,則還必須調用前一個數據架上的重新裝入數據。 –
@AnthonyAlberto我現在覺得自己很笨拙......是的,我錯過了保存/重新加載。謝謝!我想我正在等待ActiveRecord的某種心靈感應......想把它當成一個業者來得到一些業力? – Dan
完成,謝謝:) –