2012-09-07 25 views
3

我有一個包含名爲「sequence」的整數類型列的表,它不允許爲空。如果我試圖正常地定義工廠,FactoryGirl認爲我想設置一個序列而不是定義一個列名。如何使用FactoryGirl初始化一個名爲'sequence'的列

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。

回答

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 
# => "[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

相關問題