rails中的多个HABTM关系

时间:2010-08-05 03:58:54

标签: ruby-on-rails activerecord

class Book < ActiveRecord::Base
  has_and_belongs_to_many :categories
  has_and_belongs_to_many :users
end


class Category < ActiveRecord::Base
  has_and_belongs_to_many :books
end

class User < ActiveRecord::Base
  has_and_belongs_to_many :books
end

以上是我如何宣布模型之间的关系。在我的书籍控制器和表单中,我可以轻松地创建一本书并将该书与一个类别相关联。但是如何在创建时将该书与用户相关联?是否有一部分rails automagic可以为我处理这个问题,或者我必须做一些事务类型来更新连接表以将一本书与用户关联。

1 个答案:

答案 0 :(得分:0)

您可以像这样实例化新书:

class BooksController < ApplicationController
  def create
    @book = @current_user.books.build(params[:book])
    ...
  end
end

本书的范围为@current_user;保存@book时,@book.user_id将设置为@current_user.id。填充@current_user的方式取决于您。