FactoryGirl 中的 _id 属性发生了什么?
What's happen that _id attribute in FactoryGirl?
我对这种行为感到惊讶。
也许吧。
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)
我认为这对 ActiveRecord
可能很重要。
如果你不想要这种行为,你可以做一些猴子修补:
module FactoryGirl
self.aliases = []
end
我对这种行为感到惊讶。
也许吧。 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)
我认为这对 ActiveRecord
可能很重要。
如果你不想要这种行为,你可以做一些猴子修补:
module FactoryGirl
self.aliases = []
end