0

誰かがこれに出くわしました:

私はこのようなものを持っています:

モデル:

class User < ActiveRecord::Base

    authenticates_with_sorcery!

    attr_accessible :forename, :surname, :email, :password, :password_confirmation
...
end

class Manager < User
  has_many :things_to_manage

...
end

class ThingsToManage < ActiveRecord::Base
  attr_accessible :stuff, :more_stuff

  belongs_to :manager

...
end

そして、FactoryGirl.create(:things_to_manage) が Manager (User から継承) を使用して ThingsToManager モデル (データベースに永続化) を作成するように、ファクトリをセットアップしたいと考えています。

私の工場は次のようなものです:

FactoryGirl.define do
    factory :user do
        forename 'Test'
        surname 'User'
        sequence(:email) {|n| "#{forename}.#{surname}#{n}@test.com".downcase}
        password 'lalala123@@'
        end
end

FactoryGirl.define do
  factory :manager do

  end
end

FactoryGirl.define do
  factory :things_to_manage do

    stuff "rhubarb rhubarb"
    more_stuff "la la la"
    association :manager, :factory => :user

  end
end

association :manager, :factory => :user機能しません。私は得る

ActiveRecord::AssociationTypeMismatch: マネージャー (#70275174714940) が必要ですが、ユーザー (#70275151319360) を取得しました

何か案は?

4

1 に答える 1

0

この回答に従って、マネージャーのファクトリを次のように変更してみてください。

FactoryGirl.define do
  factory :manager, class: Manager, :parent => :user do

  end
end

次に、things_to_manage ファクトリを次のようにします。

FactoryGirl.define do
  factory :things_to_manage do

    stuff "rhubarb rhubarb"
    more_stuff "la la la"
    manager

  end
end
于 2013-10-18T11:24:50.163 に答える