Rails seed не создает экземпляры в базах данных, пока db: seed - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь создать небольшую электронную коммерцию, такую ​​как API. Я пытаюсь создать фиктивных пользователей с помощью Faker и создать экземпляр Корзины покупок, который присоединяется к нему в качестве внешнего ключа во время семени (У каждого пользователя должна быть корзина покупок). Я пробовал два разных метода

Эти файлы находятся в файле seed.rb в папке db Попробуйте 1: 5 раз Product.create ({ title: Faker :: Commerce.product_name, цена: Faker :: Commerce.price, инвентарь_счет: Faker :: Number.number (2) })

end

3.times do
  ShoppingCart.create({
                                 total_price: 0
                             }) do |t|


  User.create({
                  name: Faker::Name.name,
                  shopping_carts_id: t.id
              })
    end
end

попытка 2: (идентичное создание продуктов)

3 раза cart = ShoppingCart.create ({ всего: 0 })

  User.create({
                  name: Faker::Name.name,
                  shopping_carts_id: cart.id
              })
    end
end

Вот модель

class ShoppingCart < ApplicationRecord
  belongs_to :users
  has_many :products
end

Когда я запускаю семя, пользователи создаются хорошо, но корзин покупок там нет. В корзине покупателя должен быть внешний ключ от пользователя. Я очень плохо знаком с рельсами, и мне трудно понять отношения с БД.

1 Ответ

0 голосов
/ 15 января 2019

Вы пытались добавить внешний ключ с помощью миграции и посмотреть, каков будет результат?

rails g migration AddForeignKeyToShoppingCart

Затем в новый файл миграции добавьте:

def change
  add_foreign_key :shopping_carts, :users
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...