3

私はモデルを持っています

class Rating < ActiveRecord::Base
  attr_accessible :type_id, :value
  belongs_to :review

class Review < ActiveRecord::Base
  attr_accessible :name, :description, :user_id, :relationship_type_id, :ratings_attributes    
  belongs_to :facility
  has_many :ratings
  accepts_nested_attributes_for :ratings, limit: Rating::RATE.count

4 つのネストされた評価を含む工場レビューを作成する必要があります。これはレビューの検証をテストするためのものですが、これを行う方法がわかりません これは私の工場です:

  factory :review do
    facility
    sequence(:name) { |n| "Name of review #{n}" }
    sequence(:description) { |n| "asdasdasdasdasdasd #{n}" }
    user_id 1
    relationship_type_id 1
  end
  factory :rating do
    type_id 2
    value 3
    review  
    factory :requred_rating do
      type_id 1
    end
  end

コントローラーでは、ネストされた属性を使用して初期レビューを作成しています。

  @review = Review.new
  Rating::RATE.each do |rate|
    @review.ratings.build(type_id: rate[1])
  end

評価付きの新しいレビューを作成する場合:

  @review = @facility.reviews.build(params[:review])
  if @review.save

すべての動作は良好ですが、テストする必要があります

私を助けてください。

4

1 に答える 1

1

レビュー ファクトリに特性を追加して、次のような評価でレビューを作成できます。FactoryGirl.create(:review, :with_ratings)

トレイトを含むレビュー ファクトリ:

factory :review do
  facility
  sequence(:name) { |n| "Name of review #{n}" }
  sequence(:description) { |n| "asdasdasdasdasdasd #{n}" }
  user_id 1
  relationship_type_id 1

  trait :with_ratings do
    after(:create) do |review|
       Rating::RATE.each do |rate|
         FactoryGirl.create(:rating, review: review, type_id: rate[1])
       end 
    end
  end
end
于 2013-07-18T06:04:40.920 に答える