ruby - '需要': cannot load such file -- pry-byebug (LoadError)

标签 ruby postgresql

我现在正在做一些培训(所以新手),我正在尝试在 Ruby/psql 项目中运行 console.rb 文件。该项目有客户、电影和门票。

一旦我可以让 console.rb 文件运行,对象就可以对数据执行 CRUD 命令。

目前我有三个 .rb 文件的空数据库表。

RUBY VERSION:
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]

PSQL VERSION:
psql (PostgreSQL) 11.5

项目的文件结构如下:

specs
 - film_spec.rb (empty)
 - ticket_spec.rb (empty)
 - customer_spec.rb (empty)

models
 - film.rb
 - ticket.rb
 - customer.rb

db
 - cinema_homework.sql
 - sql_runner.rb
 - customer_spec.rb (empty)

console.rb

控制台文件是:

require('pry')
require_relative('models/customers')
require_relative('models/films')
require_relative('models/tickets')

Tickets.delete_all()
Customers.delete_all()
Films.delete_all()

customer1 = Customers.new({'name' => 'Geddy', 'funds' => 100})
customers1.save()

customer2 etc

customers3 ett


film1 = Films.new({'title' => 'A Show of Hands', 'price' => 20})
film1.save()

film2 etc ...

film3 etc ...

ticket1 = Tickets.new({'customers_id' => customers1.id, 'films_id' => film1.id})
ticket1.save()

ticket2 etc ...

ticket3 etc ...

binding.pry

nil

我收到此错误,但我无法弄清楚发生了什么。非常感谢任何帮助。

Traceback (most recent call last):
    3: from console.rb:2:in `<main>'
    2: from console.rb:2:in `require_relative'
    1: from /Users/johnhannah/codeclan/week_3/day_5/cinema_homework/models/customers.rb:1:in `<top (required)>'
/Users/johnhannah/codeclan/week_3/day_5/cinema_homework/models/customers.rb:1:in `require_relative': cannot load such file -- /Users/johnhannah/codeclan/week_3/day_5/cinema_homework/db/sql_runner (LoadError)

客户.rb


require_relative('../db/sql_runner.rb')

class Customers

  attr_reader :id
  attr_accessor :name, :funds

  def initialize(options)
    @id = options['id'].to_i if options['id']
    @name = options['name']
    @funds = options['funds'].to_i
  end

  def save()
    sql = "INSERT INTO customers (name, funds)
    VALUES ($1, $2)
    RETURNING id"
    values = [@name, @funds]
    customers = SqlRunner.run(sql, values).first
    @id = customers['id'].to_i
  end

end

最佳答案

我建议你加载可执行文件(console.rb)中的所有文件。

正如您所做的那样,当您运行 console.rb 时,所有文件中的所有类都将可用。

所以在 console.rb 的顶部写一些类似的东西

require 'pry'
require_relative 'db/sql_runner'
require_relative 'models/film'
require_relative 'models/ticket'
require_relative 'models/customer'

(这些行的顺序可以根据加载类的顺序来改变)

同时检查你的类(class)的单词形式。通常类名是单数,而不是复数。并检查所有文件名。通常文件名是 ClassName 的 snake_case

关于ruby - '需要': cannot load such file -- pry-byebug (LoadError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59010491/

相关文章:

ruby - RVM 全面拒绝权限错误 - OS X Mavericks - Ruby 2.0.0?

mysql - Ruby 1.9 + MySQL 访问错误

sql - 如何记录 PostgreSQL 查询?

python - PostgreSQL - 你如何获得列格式?

ruby-on-rails - Mongoid 无限循环查询

ruby-on-rails - 当我发出 ajax 请求时,如何防止浏览器屏幕滚动到顶部?

ruby - 使用 Ruby 为无服务器框架编写授权者

mysql - postgresql 批量插入性能问题(相对于 mysql)

postgresql - 可以使用 SQL 检索 SQLSTATE 列表吗?

postgresql - 触发和功能问题