我有一个表,其中包含一个名为“sequence”的整数类型列,它不允许空值。如果我尝试正常定义工厂,FactoryGirl认为我正在尝试设置序列而不是定义列名。
factory :my_table do
sequence 1
end
# NoMethodError: undefined method `to_sym' for 1:Fixnum
如何设置它以便FactoryGirl将其识别为普通列,而不是FactoryGirl序列?如果我想使用实际序列用唯一递增整数值填充列,该怎么办?我可以看到一个名为“trait”或“association”的列可能存在同样的问题。顺便说一下,我正在使用factory_girl 3.3.0和rails 3.2.8。
答案 0 :(得分:11)
谷歌搜索找到了这个解决方案:
factory :luggage do
add_attribute :sequence, "12345"
end
https://groups.google.com/forum/?fromgroups=#!topic/factory_girl/OriR9gXlMZI
如果您需要创建序列并使用它,请参阅此备忘单:
序列:
# Defines a new sequence
Factory.sequence :email do |n|
"person#{n}@example.com"
end
#Uses the sequence
Factory.next :email
# => "person1@example.com"
# can also be defined inline:
Factory.define :user do |u|
u.sequence(:email) { |n| "persion#{n}@example.com" }
end