我不知道为什么我的耙子种子文件没有运行

问题描述 投票:0回答:1

这是我的种子文件。

require 'pry'
require 'rest-client'
require 'json'
require 'faker'

Consumer.delete_all
AlcoholicBeverage.delete_all
Intake.delete_all

100.times do 
    name = Faker::Name.first_name
    sex= Faker::Gender.binary_type
    weight= Faker::Number.between(from: 1, to: 10)
    Consumer.create!(name:name,sex:sex,weight:weight)
end

ingredients=RestClient.get("https://raw.githubusercontent.com/teijo/iba-cocktails/master/recipes.json")
@ingredients_data=JSON.parse(ingredients)

@ingredients_data.collect do |x,y|
    AlcoholicBeverage.create(cocktail_name: x["name"],glass: x["glass"],garnish: x["garnish"],preparation: x["preparation"])
end

100.times do 
    consumer_id = rand(1..100)
    alcoholic_beverage_id = rand(1..100)
    Intake.create!(consumer_id: consumer_id, alcoholic_beverage_id:alcoholic_beverage_id)
end

这是我的gemfile。

# frozen_string_literal: true
source "https://rubygems.org"

gem "activerecord", '~> 5.2'
gem "sinatra-activerecord"
gem "sqlite3", '~> 1.3.6'
gem "pry"
gem "require_all"
gem "faker"
gem 'rest-client'

我已经完成了我的迁移... 所以我不知道为什么当我在终端机上输入 rake db:seed 的时候什么都没有显示出来... 任何建议或帮助都将是非常感激的。我也试过在我的种子文件中加入require 'faker',但没有任何改变。

ruby rake database-migration faker
1个回答
0
投票

这种替代方法将帮助你避免丢失数据,因为它不依赖于你的id从1到100。

consumers = 100.times.map do 
  name = Faker::Name.first_name
  sex= Faker::Gender.binary_type
  weight= Faker::Number.between(from: 1, to: 10)
  Consumer.create!(name:name,sex:sex,weight:weight)
end

ingredients=RestClient.get("https://raw.githubusercontent.com/teijo/iba-cocktails/master/recipes.json")
@ingredients_data=JSON.parse(ingredients)

beverages = @ingredients_data.map do |x,y|
  AlcoholicBeverage.create(cocktail_name: x["name"],glass: x["glass"],garnish: x["garnish"],preparation: x["preparation"])
end

100.times do 
  Intake.create!(consumer: consumers.shuffle.first, alcoholic_beverage: beverages.shuffle.first)
end
© www.soinside.com 2019 - 2024. All rights reserved.