gpt4 book ai didi

ruby-on-rails - Rack 错误 -- LoadError : cannot load such file

转载 作者:数据小太阳 更新时间:2023-10-29 06:55:54 26 4
gpt4 key购买 nike

尝试完成 tekpub Rack 教程,但遇到此错误。

Boot Error

Something went wrong while loading app.ru

LoadError: cannot load such file -- haiku

在我尝试运行的应用程序所在的目录中有一个名为 haiku.rb 的文件,但在尝试运行该程序时出现上述错误。这是代码:

class EnvironmentOutput


def initialize(app=nil)
@app = app
end


def call(env)
out = ""

unless(@app.nil?)
response = @app.call(env)[2]
out+=response
end

env.keys.each {|key| out+="<li>#{key}=#{env[key]}</li>"}
["200",{"Content-Type" => "text/html"},[out]]
end
end

require 'haml'
require 'haiku'

class MyApp
def call(env)

poem = Haiku.new.random
template = File.open("views/index.haml").read
engine = Haml::Engine.new(template)
out = engine.render(Object.new, :poem => poem)

["200",{"Content-Type" => "text/html"}, out]
end
end

use EnvironmentOutput
run MyApp.new

我确定这是一个小错误,因为代码与教程中的代码相同并且对他有用...

谢谢

最佳答案

您需要阅读 ruby​​ 加载路径($LOAD_PATH$:)。默认情况下,ruby 有一个加载路径,其中包括安装 gem 的位置,这就是为什么您可以执行 require 'haml' 而无需提供 haml gem 所在位置的完整路径。

当您键入 require 'haiku' 时,您基本上是在告诉 ruby​​ 在它的加载路径中的某处寻找一些名为 haiku.rb 的文件,而 LoadError 来自 ruby​​ 未在 $LOAD_PATH(或 $:)中列出的任何目录中找到您的 haiku.rb 文件,它只是 $LOAD_PATH 的简写)。

您可以通过(至少)两种方式之一解决此问题:

  1. require 'haiku' 更改为 require File.dirname(__FILE__) + '/haiku.rb' 以明确告诉 ruby​​ 加载什么文件

  2. 将当前工作目录添加到您的加载路径:$:.push(File.dirname(__FILE__))。这样您就可以保留 require 'haiku' 部分。

关于ruby-on-rails - Rack 错误 -- LoadError : cannot load such file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com