1

:project_pages_id => 1この値を自動インクリメントに変更するにはどうすればよいですか?

  user.projects.create!(:title => Faker::Lorem.sentence(1), :project_pages_id => 1)
4

3 に答える 3

3
10.times do |n|
  user.projects.create!(:title => Faker::Lorem.sentence(1), :project_pages_id => n
end
于 2011-01-18T02:56:55.253 に答える
1

次のような配列を反復処理する必要があります。

a = (1..10).to_a #or however many ID's you want.
a.each do {|d|   user.projects.create!(:title => Faker::Lorem.sentence(1), :project_pages_id => d)}

他の方法もあると思いますが、これは迅速で汚いものであり、単なるテストです。

于 2011-01-18T02:31:09.850 に答える
1

そのproject_pages_idは外部キーを意図していますか?もしそうなら、なぜあなたはそれがゼロの関連付けを持つようにそれを自動インクリメントするのですか?

シードデータを作成しようとしているようです。そのための良い方法は、FactoryGirlを使用することです。

https://github.com/thoughtbot/factory_girl

とりわけ、それはあなたの元の質問を解決する「シーケンス」の概念を持っています:

# Defines a new sequence
Factory.sequence :email do |n|
  "person#{n}@example.com"
end

Factory.next :email
# => "person1@example.com"

Factory.next :email
# => "person2@example.com"
于 2011-01-18T05:18:52.247 に答える