我有一个表,其中包含一个名为“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/

10-13 01:04