vis*_*nth 0 ruby activerecord ruby-on-rails associations
这是Author
模型和Book
模型
class Author < ApplicationRecord
has_many :books, dependent: :destroy
end
class Book < ApplicationRecord
belongs_to :author
end
Run Code Online (Sandbox Code Playgroud)
我创建了2位作者(author1和author2),并为每位作者添加了2本书。
之后,我删除了author1并创建了一个新作者(author3)。现在,我想给author3两本author1的书。
是否有ActiveRecord方法用新作者来更新书籍author_id?
小智 5
我建议您先创建第二个作者。如果您先删除第一位作者,则将无法获取与第一位作者相关的书籍。
new_author = Author.find(new_id)
Run Code Online (Sandbox Code Playgroud)
old_author = Author.find(old_id)
old_author.books.update_all(author_id: new_author.id)
Run Code Online (Sandbox Code Playgroud)
old_author.destroy
Run Code Online (Sandbox Code Playgroud)
这将确保不会丢失任何数据,也不会出现任何孤立数据。
归档时间: |
|
查看次数: |
63 次 |
最近记录: |