2013-01-01 4 views
0
class Article < ActiveRecord::Base 
    attr_accessible :console, :ean, :title, :title_spaceless 
    has_many :dealers, :through => :units 
end 

class Dealer < ActiveRecord::Base 
    attr_accessible :adress, :name, :website 
    has_many :articles, :through => :units 
    validates :name, :uniqueness => { :case_sensitive => false } 
end 

class Unit < ActiveRecord::Base 
    attr_accessible :article_id, :dealer_id, :note, :price 
    belongs_to :article 
    belongs_to :unit 
end 

동시에 딜러, 상품 및 유닛을 어떻게 만듭니 까?체인 모델 작성 방법

내가 시도한 첫 번째 일은 이와 비슷한 것이었지만 완전히 엉망이었습니다.

@dealer = Dealer.find_or_create_by_name("Surugaya") 
@dealer.article.create(:title => game.content, :title_spaceless => game.content.delete(' '), :console => "SNES").unit.create(:article_id => @dealer.article.article_id, :units_id => @dealer.article.unit_id, :price => game.price) 

답변

1

첫째로, 당신은 당신의 Article 클래스에 units 연결을 놓치고있어. 다음을 수정해야합니다.

has_many :units 

'동일한 시간에'동일한 데이터베이스 트랜잭션을 의미한다고 가정합니다. 사용해보십시오.

Dealer.transaction do 
    @dealer = Dealer.find_or_create_by_name("Surugaya") 
    @article = @dealer.articles.create!(
     :title => game.content, 
     :title_spaceless => game.content.delete(' '), 
     :console => "SNES" 
) 
    @unit = @article.units.create!(:price => game.price) 
end