gpt4 book ai didi

ruby - 无法使用 Require 加载模块

转载 作者:太空宇宙 更新时间:2023-11-03 16:27:18 24 4
gpt4 key购买 nike

我有一个模块 (cgi_helper.rb)、一个调用该模块的 cgi 和一个 html 模板。我收到以下错误:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in require': cannot load such file -- cgi_helper (LoadError)
from >/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in
require' from lab4.cgi:8:in `'

模块:http://pastebin.com/YFj0rC8p

CGI:http://pastebin.com/xs5LiV2a

我不明白为什么找不到模块。它是可执行的,并且与 cgi 位于同一目录中。这是 erb 模板。

<table>
<tr>
<th>Number</th>
<th>Username</th>
<th>Passwd</th>
<th>UID</th>
<th>GID</th>
<th>Home Dir</th>
<th>Shell</th>
<% students.each do |x| %>
<% next if eachname[x].nil? %>
<% s = Student.new(eachname[x].split(':')) %>
<tr>
<% columns.each do |c| %>
<td><%= s.send(c).to_s %></td>
<% end %>
</tr>
<% end %>
</table>
<% finish = Time.now %>
<h2> Total Elapsed Time:<%= (finish.to_f - start.to_f).to_s %></h2>

最佳答案

首先:require 不加载模块,它加载文件。

require$LOAD_PATH 加载一个文件,如果你的 cgi_helper.rb 文件所在的目录不在 >$LOAD_PATH,那么就找不到了。调整 $LOAD_PATH 以便可以找到您的文件应该是包管理系统(例如 RubyGems)的工作。

如果你想加载一个相对于正在加载的文件的位置的文件,那么你应该使用require_relative:

require_relative 'cgi_helper'

手动摆弄 $LOAD_PATH 已经很久没有必要了。

关于ruby - 无法使用 Require 加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22308153/

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