2014-12-02 30 views
1

我有一个灯具采用ID的这样的文件:Rails fixture - 自动增加一个ID属性?

post_one: 
    id: 1 
    attr2: 'some_value' 

post_two: 
    id: 2 
    attr3: 'some_other_value' 

等。

有没有一种方法,我不必输入每个记录的ID,并让它自动增加?

+2

您可能想要使用FactoryGirl(https://github.com/thoughtbot/factory_girl_rails)来生成测试数据。 – 2014-12-02 02:14:05

+0

FactoryGirl更加灵活,但是您是否尝试过忽略'id'字段?您的ID字段是否会自动递增数字? – 2014-12-02 03:08:37

+0

@NickVeys我没有。这是一个伟大的想法:)从4.2, – PlagueHammer 2014-12-02 07:22:13

回答

2

如果你没有指定一个id,它将散列标签并使用它作为id。不指定一个ID的一些好处:

  • 稳定,自动生成的ID
  • 对协会(belongs_to的,HAS_ONE,的has_many)
  • HABTM协会内联的列表
  • 自动填充时间戳列
  • 夹具标签引用标签插值
  • 支持YAML默认值

关于固定装置的更多信息,请参阅以下文档:http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html

+0

,只有前三个实际上是好处。 '即使指定了id,也有一些更高级的功能可以列出最下面的三项。请参阅答案中提供的api链接 – montrealmike 2016-03-25 20:35:31