小编t0r*_*edo的帖子

factory_girl(4.2.0)多对多的关系

我想使用FactoryGirl 4.2.0正确建立多对多工厂集.我一直在使用以前的FactoryGirl版本混合在一起的过时语法的文档/示例,它只是不适合我.

如何根据以下两个资源及其链接表设置此方案:

class User < ActiveRecord::Base
  has_many :user_registrations
  has_many :registrations, through: :user_registrations
end

class UserRegistration < ActiveRecord::Base
  belongs_to :user
  belongs_to :registration
end

class Registration < ActiveRecord::Base
  has_many :user_registrations
  has_many :users, through: :user_registrations
end
Run Code Online (Sandbox Code Playgroud)

根据此处的文档,这是我到目前为止所拥有的.这就像我到目前为止所取得的任何实际进展一样接近.

FactoryGirl.define do

  factory :registration do
    user
  end

  factory :user, class: User do
    sequence(:email) { |n| "foo#{n}@example.com" }
    password "password"

    factory :user_with_registrations do

      ignore do
        registrations_count 1
      end

      after(:create) do |user, evaluator|
        registrations FactoryGirl.create_list(:registration, evaluator.registrations_count, user: user)
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

以下列方式失败,我意识到这是因为这种设置被认为是一对多的关系.

1) User …
Run Code Online (Sandbox Code Playgroud)

tdd rspec ruby-on-rails ruby-on-rails-3.2 factory-bot

3
推荐指数
1
解决办法
2391
查看次数