Ruby on rails 需要irb控制台中的lib目录
有没有办法在Ruby on rails 需要irb控制台中的lib目录,ruby-on-rails,ruby,irb,Ruby On Rails,Ruby,Irb,有没有办法在irb控制台中一次要求lib目录中的所有文件 irb ( project root ) require './lib/' # not working 结构 . | --lib | |-- one.rb |-- two.rb |-- tree.rb 编辑 我更喜欢这样一种解决方案,即我可以只需要一次文件,而不是每次启动irb会话时都需要 Asrequire(and)不能将目录名作为参数,只能使用单个文件名。您可以编写以下内容来完成您想要的操作: Dir['./
irb
控制台中一次要求lib
目录中的所有文件
irb ( project root )
require './lib/' # not working
结构
.
|
--lib
|
|-- one.rb
|-- two.rb
|-- tree.rb
编辑
我更喜欢这样一种解决方案,即我可以只需要一次文件,而不是每次启动irb
会话时都需要 Asrequire
(and)不能将目录名作为参数,只能使用单个文件名。您可以编写以下内容来完成您想要的操作:
Dir['./lib/*.rb'].each { |f| require_relative(f) }
你可以用这个
Dir[File.dirname(__FILE__) + '/lib/*.rb'].each {|file| require file }
在您的主目录中创建一个名为.irbrc
的文件,并在其中为您想要的任何文件编写require
命令。当您运行irb
时,将加载.irbrc
。请执行require\u relative./lib/one.rb'
,require_relative./lib/two.rb'
和require_relative./lib/three.rb'
阅读此-@ArupRakshit假设我正在处理5个文件…键入太多了…希望有一个解决方案,我可以只需要一次。是的。。。请看..@ArupRakshit当你退出irb会议并回来时,你必须再做一次…更喜欢sawa的解决方案-请看他的回答中的我的评论。我不知道为什么这会得到否决票,它准确地回答了问题。我不是否决票,但我认为每次在irb中键入这一点是不实际的。另外,f
已经是一条绝对路径,所以require
就足够了,除非你认为应该经常使用require\u relative
来接管require
(我不反对)。@sawa显然,如果OP在运行irb时必须要求文件,我的答案是不可能的。关于使用require\u relative
:我使用它来从我在$:
中没有列出的目录中请求文件。你应该反对不断地将require\u relative
替换为require
,因为它根本不起作用,例如使用require\u relative
你不能从gems加载文件。问题不在于需要使用哪些命令来要求文件夹中的所有内容吗?我不这么认为。我认为OP想要一种在irb启动时(无论是自动还是手动)轻松地需要几个文件(恰好在一个目录中)的方法。我建议使用一种自动方式。他们使用的坏代码显示require
调用文件夹(不起作用)。他们确实提到了irb
,但没有提到启动。这是irb
命令之后的第一行。而且,即使OP没有要求它在启动时完成,它会有什么不同?你认为需要的时间很重要,OP需要在加载文件之前在irb中做些什么?我想这只是因为这是一个例子。他们应该放些什么呢?无论如何,我想我们必须等到选择了答案:)