我对这种行为感到惊讶。
也许。 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)
答案 0 :(得分:2)
我认为ActiveRecord
可能很重要。
如果您不想要这种行为,可以进行一些猴子修补:
module FactoryGirl
self.aliases = []
end