我有书架模型,里面有数据。
bookshelf: id, book_id, user_id, is_read:false
我需要将所有新用户id
传递/添加到所有现有user_id
的书架book_id
中
//user.rb
has_many :bookshelfs
has_many :books, through: :bookshelfs
//bookshelf.rb
belongs_to :user
belongs_to :book
我使用设计宝石。我需要在regestrations_controller.rb中写什么?
def create
super
...
end
答案 0 :(得分:1)
您可以在用户模型中添加class User < ActiveRecord::Base
...
after_create :add_to_all_existing_books
...
private
def add_to_all_existing_books
Book.where(is_read: false).each do |b|
Bookshelf.create(book_id: b.id, user_id: self.id, is_read: false)
end
end
end
挂钩,这样,无论何时创建新用户,您都会将他添加到书架。
{{1}}