1

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

Student has_many Lesson
Lesson belongs_to Student

そして、生徒がレッスンを編集できることをテストしたいと思います。

これが私が始めたことです:

 Given I am logged in as a student

ファクトリ (上記を参照) から @student オブジェクトを設定し、学生をサインインさせるステップ定義はどれですか。

FactoryGirl.define do
  factory :student do
    first_name 'student'
    last_name 'last name student'
  end
end

この時点で、私は立ち往生しています。次のようなレッスンのファクトリーを作成できることはわかっています。

FactoryGirl.define do
  factory :lesson do
    name 'maths'
    level 'high school'
  end
end

しかし、そのレッスンをサインインしている教授に関連付けたいと思います。私の質問は...どうすれば次のステップに進むことができますか?

  1. サインインした生徒に関連付けられたレッスンを作成する
  2. レッスンの編集 (lesson/:id ページにアクセスするには ID が必要です)
4

1 に答える 1

0

belongs_to :lecturerLesson モデルとhas_many :lessonsLecturer モデルにはすでにあると思います。

まず、レッスン ファクトリを次のように定義します (すでに講師ファクトリがあると仮定します)。

FactoryGirl.define do
  factory :lesson do
    name 'maths'
    level 'high school'
    association :lecturer
  end
end

行はassociation :lecturer、ファクトリを使用して講師を作成し、レッスンに割り当てます。

テストでは、サインインした講師を作成したレッスンに割り当てるために、次のようにすることができます。

FactoryGirl.create(:lesson, lecturer: signed_in_lecturer)

お役に立てれば。

PS: 私はキュウリを使用していないので、考慮に入れるためにコードを少し調整する必要があるかもしれません。

于 2012-06-24T11:06:21.610 に答える