【问题标题】:How to run a .rb file from IRB?如何从 IRB 运行 .rb 文件?
【发布时间】:2011-05-27 08:46:55
【问题描述】:

我开始使用 Ruby on Rails。我目前正在阅读一个教程,其中说我必须从 IRB 运行一个 .rb 文件,这将在我的当前目录中创建一个 .xml 文件。

我的问题是如何在 IRB 中运行 .rb 文件?
当我在 IRB 中运行此 .rb 文件时,我是否必须位于该文件所在的目录中?

我尝试了以下方法:只需在文件目录的命令行中输入irb。据我了解,这将启动 IRB 会话。
然后我输入了irb "filename.rb",它通过但没有在当前目录中创建任何东西,但至少它没有给出任何错误。

我还尝试了一大堆其他明显给我错误的东西。所以我不认为我可以自己解决这个问题,谷歌搜索这个问题根本没有帮助。

我正在运行 Leopard。

【问题讨论】:

    标签: ruby-on-rails ruby irb


    【解决方案1】:

    您可以通过请求或加载文件在 irb 中“运行”文件。

    $ irb
    >> load './filename.rb'
    

    要在 irb 中更改当前工作目录,可以使用 FileUtils

    >> require 'fileutils'
    >> FileUtils.pwd # prints working directory
    >> FileUtils.cd '/path/to/somewhere' # changes the directory
    

    【讨论】:

    • 要从 irb 要求它,您需要提供完全限定的路径,因此:require '~/myrubystuff/coolstuff.rb' 而不仅仅是 require 'coolstuff'
    • 我可以仅按名称要求fileutils,不需要目录路径。我确信它取决于环境,并不是每个人都需要使用合格的路径。
    【解决方案2】:

    如果您想在 irb 会话中加载文件并且您使用的是 Ruby 2+,您可以像这样在 irb 中加载文件:

    irb -r ./the_name_of_your_file.rb
    

    这将打开一个加载给定文件的 irb 会话。

    想象一下你有这样一个类的文件:

    class Example
      def initialize(name)
        @name = name
      end
    
      def print__example
        p name
      end
    end
    

    您将能够在 irb 会话中使用示例类。

    【讨论】:

    • 这正是我正在寻找的,非常感谢!
    • 这只能访问函数,而不是文件中定义的变量。
    【解决方案3】:

    我们可以使用任何文本编辑器在您当前正在使用的目录中创建一个 .rb 文件并在其中键入所有代码,然后在终端中使用命令ruby filename.rb,而不是在 irb 中,然后它显示 irb 中的输出。

    【讨论】:

    • 但是通过加载文件,您可以访问那里定义的变量。在故障排除或使用库时很方便。
    • @Sreenivas 这正是我想要的。谢谢!
    猜你喜欢
    • 2011-05-12
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多