Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 模块混合输入中的#require方法 #stacklike.rb文件 模块堆栈式 def堆栈 @堆栈| |=[] 结束 ​ def添加到def堆栈(obj) 堆栈推送(obj) 结束 ​ def从def堆栈中取出def stack.pop 结束 结束 ​ #stack.rb文件 需要“stacklike” ​ 类堆栈 包括Stacklike 结束 ​ s=Stack.new ​ s、 将_添加到_堆栈(“项目一”) s、 将_添加到_堆栈(“第二项”) s、 将_添加到_堆栈(“第三项”) ​ 放置“当前在堆栈上的对象:” 把s.stack ​ take=s.从堆栈中取出 放置“已删除此对象:” 放 ​ 将“现在在堆栈上:” 把s.stack ​ ​ ruby stack.rb => /Users/jchu773/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:“require”中:无法加载此类文件--stacklike.rb(LoadError) from/Users/jchu773/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in'require' from stack.rb:1:in`'_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 模块混合输入中的#require方法 #stacklike.rb文件 模块堆栈式 def堆栈 @堆栈| |=[] 结束 ​ def添加到def堆栈(obj) 堆栈推送(obj) 结束 ​ def从def堆栈中取出def stack.pop 结束 结束 ​ #stack.rb文件 需要“stacklike” ​ 类堆栈 包括Stacklike 结束 ​ s=Stack.new ​ s、 将_添加到_堆栈(“项目一”) s、 将_添加到_堆栈(“第二项”) s、 将_添加到_堆栈(“第三项”) ​ 放置“当前在堆栈上的对象:” 把s.stack ​ take=s.从堆栈中取出 放置“已删除此对象:” 放 ​ 将“现在在堆栈上:” 把s.stack ​ ​ ruby stack.rb => /Users/jchu773/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:“require”中:无法加载此类文件--stacklike.rb(LoadError) from/Users/jchu773/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in'require' from stack.rb:1:in`'

Ruby on rails 模块混合输入中的#require方法 #stacklike.rb文件 模块堆栈式 def堆栈 @堆栈| |=[] 结束 ​ def添加到def堆栈(obj) 堆栈推送(obj) 结束 ​ def从def堆栈中取出def stack.pop 结束 结束 ​ #stack.rb文件 需要“stacklike” ​ 类堆栈 包括Stacklike 结束 ​ s=Stack.new ​ s、 将_添加到_堆栈(“项目一”) s、 将_添加到_堆栈(“第二项”) s、 将_添加到_堆栈(“第三项”) ​ 放置“当前在堆栈上的对象:” 把s.stack ​ take=s.从堆栈中取出 放置“已删除此对象:” 放 ​ 将“现在在堆栈上:” 把s.stack ​ ​ ruby stack.rb => /Users/jchu773/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:“require”中:无法加载此类文件--stacklike.rb(LoadError) from/Users/jchu773/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in'require' from stack.rb:1:in`',ruby-on-rails,ruby,Ruby On Rails,Ruby,大家好,我现在正在读大卫·布莱克的《基础扎实的红宝石家》,我现在正在学习模块。我在他的练习示例中进行了介绍,但每当我使用#require方法时,就会弹出上面的错误,有人知道原因吗?require\u relative需要来自相对路径的文件 require file需要您指定确切(绝对)路径 例如。 我在一个目录中有一个app.rb和一个module.rb(c:/users/ruby/app/this\u app/) require_relative查找运行app.rb的模块文件 require\

大家好,我现在正在读大卫·布莱克的《基础扎实的红宝石家》,我现在正在学习模块。我在他的练习示例中进行了介绍,但每当我使用#require方法时,就会弹出上面的错误,有人知道原因吗?

require\u relative需要来自相对路径的文件

require file需要您指定确切(绝对)路径

例如。 我在一个目录中有一个app.rb和一个module.rb(c:/users/ruby/app/this\u app/) require_relative查找运行app.rb的模块文件
require\u relative“module”
查找我运行app.rb(此\u app/)的目录

require“module(.rb)”甚至可能需要您指定我相信的完整路径和扩展名。我不确定扩展名,但我100%确定它需要完整的绝对路径


require”/users/ruby/app/this_-app/module(.rb)
require
需要一个绝对路径,但您可以将当前目录中的require与
require./stacklike“
一起使用
require\u relative
使用相对于当前目录的路径,因此
require\u relative“stacklike”
也可以工作

一般来说,通过向Ruby加载路径添加一个目录来加载源文件,然后执行
require“source\u file”
。Rubygems增强了
要求
,因此它可以从您安装的gems加载文件;这就是错误消息的原因:

rubygems/core\u ext/kernel\u require.rb:54:in'require':无法加载这样的文件--stacklike.rb(LoadError)


来自Rubygems,它假设您正在尝试加载一个名为“stacklike”的gem。

当您将
require
更改为
require\u relative
时,它是否有效?如果是这样,你想知道区别是什么,这是一个很好的资源。
#stacklike.rb file
module Stacklike
  def stack
    @stack ||= []
  end
​
  def add_to_stack(obj)
    stack.push(obj)
  end
​
  def take_from_stack
    stack.pop
  end
end
​
#stack.rb file
require "stacklike"
​
class Stack
  include Stacklike
end
​
s = Stack.new
​
s.add_to_stack("item one")
s.add_to_stack("item two")
s.add_to_stack("item three")
​
puts "Objects currently on the stack:"
puts s.stack
​
taken = s.take_from_stack
puts "Removed this object:"
puts taken
​
puts "Now on stack:"
puts s.stack
​
​
ruby stack.rb
=>
/Users/jchu773/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- stacklike.rb (LoadError)
    from /Users/jchu773/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from stack.rb:1:in `<main>'