FactoryGirl中的_id属性发生了什么变化?

时间:2017-09-22 11:07:46

标签: ruby factory-bot

我对这种行为感到惊讶。

也许。 https://github.com/thoughtbot/factory_girl/blob/8a65569f102ac2593e7c73bd029d5072e4641af8/lib/factory_girl/aliases.rb 可能会受到影响。但我不知道。

为什么在工厂女孩中缺少values( @rank )

样品

require 'factory_girl'
class Book
  attr_accessor :rank, :rank_id
end
FactoryGirl.define do
  factory :book do
    rank 3
  end
end
puts FactoryGirl.build(:book).inspect
    #=> #<Book:0x007fb748207770 @rank=3>
puts FactoryGirl.build(:book, rank_id: 10).inspect
    #=> #<Book:0x007fb7481dd6a0 @rank_id=10> (missing @rank)
puts FactoryGirl.build(:book, rank: 1).inspect
    #=> #<Book:0x007fb7481ef6e8 @rank=1>
puts FactoryGirl.build(:book, rank: 2, rank_id: 10).inspect
    #=> #<Book:0x007fb7481d60f8 @rank_id=10> (missing @rank)

1 个答案:

答案 0 :(得分:2)

我认为ActiveRecord可能很重要。

如果您不想要这种行为,可以进行一些猴子修补:

module FactoryGirl
  self.aliases = []
end