2

多くのアクティビティに属するアクティビティがあります。工場を rSpec でテストするたびに、エラーが発生します。

私のテストは:

it "has valid factory" do
    expect(FactoryGirl.build(:activity)).to be_valid
end

与えられたエラーは次のとおりです。

  1) Activity has valid factory
     Failure/Error: expect(FactoryGirl.build(:activity)).to be_valid
     NoMethodError:
       undefined method `client=' for #<Activity:0x6cbb800>
     # C:in `object'
     # ./spec/models/activity_spec.rb:5:in `block (2 levels) in <top (required)>

アクティビティ ファクトリassociation :clientに追加して以来、次のようになっています。

FactoryGirl.define do
    factory :activity do
        title "Activity"
        start_date {Date.parse('2013-05-13 12:00:00')}
        end_date {Date.parse('2013-05-13 12:15:00')}
        pictogram_id "1"
        association :client
    end
end

また、クライアント自体もすべてのテストに合格します。同じファクトリ: ( client.rb )

FactoryGirl.define do
    factory :client do
        name "Client name"
        background "#FFFFFF"
        birthdate {15.years.ago}
    end
end

テストDBの準備/クローンの問題ではないので、私のschema.rbの関連部分で投稿を更新しています

  create_table "activities", force: true do |t|
    t.string   "title"
    t.datetime "start_date"
    t.datetime "end_date"
    t.integer  "pictogram_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  add_index "activities", ["pictogram_id"], name: "index_activities_on_pictogram_id"

  create_table "activities_clients", id: false, force: true do |t|
    t.integer "activity_id"
    t.integer "client_id"
  end

  add_index "activities_clients", ["activity_id"], name: "index_activities_clients_on_activity_id"
  add_index "activities_clients", ["client_id"], name: "index_activities_clients_on_client_id"

  create_table "clients", force: true do |t|
    t.string   "name"
    t.string   "avatar"
    t.date     "birthdate"
    t.string   "background"
    t.integer  "group_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

関連付けが失敗する理由は何か考えはありますか?

4

1 に答える 1