我有一个表,其中包含一个名为“sequence”的整数类型列,它不允许空值。如果我尝试正常定义工厂,FactoryGirl 会认为我在尝试设置序列而不是定义列名。
factory :my_table do
sequence 1
end
# NoMethodError: undefined method `to_sym' for 1:Fixnum
我如何设置它以便 FactoryGirl 将其识别为普通列,而不是 FactoryGirl 序列?如果我想使用实际序列来填充具有唯一递增整数值的列怎么办?我可以看到名为“特征”或“关联”的列可能存在相同的问题。顺便说一句,我正在使用 factory_girl 3.3.0 和 rails 3.2.8。
最佳答案
谷歌搜索找到了这个解决方案:
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
# => "[email protected]"
# can also be defined inline:
Factory.define :user do |u|
u.sequence(:email) { |n| "persion#{n}@example.com" }
end
http://cheat.errtheblog.com/s/factory_girl
关于ruby-on-rails - 如何使用 FactoryGirl 初始化名为 'sequence' 的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12324842/