0

私はアイテムモデルを持っています:

class Item < ActiveRecord::Base
  attr_accessible :author, :title
end

そして Book モデル:

class Book < ActiveRecord::Base
  attr_accessible :item_id, :plot

  belongs_to_ :item
end

を使って本を作れるようになりたい

Book.new(:title=>"Title", :author=>"Author", :plot=>"BlaBla")
Book.save

そして、タイトルと著者で Item を作成し、作成された Item ID で Book も作成します。

それはどのように可能ですか?

4

2 に答える 2

1

:after_create次のように callback と virtual_attributesを使用する必要があります。

あなたの本のモデルでこれを書いてください

attr_accessor :title, :author

attribute_accessible :title, :author, :plot

after_create :create_item

def create_item
  item = self.build_item(:title => self.title, :author => self.author)
  item.save
end
于 2012-11-23T15:29:03.283 に答える
1

before_save または before_create の使用

class Book
  attr_accessor :title, :author

  before_save :create_item

  #before_create :create_item

  def create_item
    if self.title.present? && self.autor.present?
      item = Item.new(:title => self.title, :author => self.author)
      item.save(:validate => false)
      self.item = item # or self.item_id = item.id
    end
  end
end
于 2012-11-23T15:56:36.567 に答える