Почему «оператор if» не работает на seed.rb на Rails? - PullRequest
0 голосов
/ 28 апреля 2020

Я создаю приложение Rails 6.0.2.2.

Моя проблема в том, что оператор if в файле seeds.rb не работает.

Просто для любопытства я добавил if оператор ниже.

if Plan.count == 0 # always true -- though it already have a lot of plan data.
  Plan.create!(name: 'スタート')
  Plan.create!(name: 'ライト')
  Plan.create!(name: 'スタンダード')
end

Однако каждый раз, когда я выполняю rake db:seed, он всегда отбирает этих данных.

Когда я запускаю rails console, он возвращает что-то как ...

irb(main):073:0> Plan.count
   (0.8ms)  SELECT COUNT(*) FROM "plans"
=> 3
irb(main):074:0> Plan.count
   (1.0ms)  SELECT COUNT(*) FROM "plans"
=> 6
irb(main):076:0> Plan.count
   (1.3ms)  SELECT COUNT(*) FROM "plans"
=> 9
irb(main):077:0> Plan.count
   (1.5ms)  SELECT COUNT(*) FROM "plans"
=> 12

Почему Plan.all.count возвращает 0 неправильно?

1 Ответ

0 голосов
/ 28 апреля 2020

Очень странно. Создайте массив имен растений, повторите и создайте как показано ниже

["Plant 1", "Plant 2", "Plant 3"].each do |plant|
  Plant.find_or_create_by!(name: plant)
end
...