2015-07-21 52 views
0

我有其中包含数据的书架模型。将新用户存储到另一个模型

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

您可以添加after_create钩您的用户模型,这样一来,只要创建新用户,您将他添加到我的书架里。

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 
相关问题