多対多の関係で,has_many :through を使うとき,Association テーブルへデータを追加する方法の健忘録. Association テーブルに何かしらデータを持たせるときには
book = Book.create
book.users << user
とすればいいのだが,create したくない状況での解決法としていろいろやってみると下記でうまく行った.
##前提
class User < ActiveRecord::Base
has_many :associations
has_many :books, :through => :associations
end
class Book < ActiveRecord::Base
has_many :associations
has_many :users, :through => :associations
end
class Association < ActiveRecord::Base
belong_to :user
belong_to :book
end
##作成法
user = User.find(1)
book = Book.new
book.associations.build
book.associations[0].eval = 10
book.save
comments powered by Disqus