Как увеличить значение в скрипте Rake? - PullRequest
1 голос
/ 18 января 2011

Как я могу изменить это :project_pages_id => 1 значение на автоинкремент?

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

Ответы [ 3 ]

3 голосов
/ 18 января 2011
10.times do |n|
  user.projects.create!(:title => Faker::Lorem.sentence(1), :project_pages_id => n
end
1 голос
/ 18 января 2011

Это project_pages_id предназначен для внешнего ключа? Если да, то зачем вам автоматически увеличивать его так, чтобы он имел нулевую ассоциацию?

Похоже, вы пытаетесь создать начальные данные. Хороший способ сделать это - использовать Factory Girl:

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"
1 голос
/ 18 января 2011

Вам нужно перебрать массив, например:

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)}

Я уверен, что есть другие способы, но это быстро и грязно, и это всего лишь тест.

...