控制台未准备好ruby升华文本文件

控制台未准备好ruby升华文本文件,ruby,macos,console,sublimetext2,Ruby,Macos,Console,Sublimetext2,我是编程新手。就要开始学习Ruby了。我已经上过控制台课程,但我被困在这里了 我用的是mac 10.6.8。我在sublime文本编辑器中快速完成了1+2。我保存了它。我转到控制台键入irb,然后键入ruby example.rb。我在这里的其他地方读到,键入require./example将有所帮助……但事实并非如此。我得到以下信息 NameError: undefined local variable or method `example' for main:Object from (irb

我是编程新手。就要开始学习Ruby了。我已经上过控制台课程,但我被困在这里了

我用的是mac 10.6.8。我在sublime文本编辑器中快速完成了1+2。我保存了它。我转到控制台键入irb,然后键入ruby example.rb。我在这里的其他地方读到,键入require./example将有所帮助……但事实并非如此。我得到以下信息

NameError: undefined local variable or method `example' for main:Object
from (irb):2
from /usr/local/rvm/rubies/ruby-1.9.3-p392/bin/irb:16:in `<main>'
namererror:main:Object的未定义局部变量或方法“example”
来自(irb):2
from/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/irb:16:in`'
我不明白我做错了什么。谢谢你的帮助。我真的很感激

-L

我会做以下事情:

kirti@kirti-Aspire-5733Z:~$ irb
2.0.0p0 :001 > require 'fileutils'
 => true 
2.0.0p0 :002 > FileUtils.pwd
 => "/home/kirti" 
2.0.0p0 :003 > FileUtils.cd "/home/kirti/ruby" 
 => nil 
2.0.0p0 :004 > load "./SO.rb"
3
 => true 
2.0.0p0 :005 > require "./SO.rb"
3
 => true 
我的
SO.rb
文件包含以下行:

puts 1+2

也许你想试试。
步骤1:使用命令“cd文件夹名称/文件夹位置”导航到项目/文件文件夹
步骤2:加载“./example.rb”

为了获得更好的解决方案,您可能需要在example.rb中定义一些函数 比如:


加载example.rb文件后,在irb中输入sum以获得输出。

irb是交互式ruby shell。在shell中,键入的所有内容都被解释为Ruby代码,而不是bash命令。例如:

bash> puts 1 + 2
# command not found: puts
# this happens because you're not in a Ruby shell

bash> irb
# now you're in a Ruby shell
irb> puts 1 + 2
# 3
如果您在
example.rb
中编写了一些代码,则有两个选项:

  • bashshell运行
    ruby example.rb
    (从保存
    example.rb
    文件的同一目录运行)

  • irb控制台,您可以
    要求'example'
    ,这将把
    example.rb
    的内容加载到您的解释器中。在这种情况下,它将立即执行Ruby代码。如果您将
    example.rb
    的内容包装在一个类中,它将加载该类,但不在解释器中执行代码l你实例化/调用了它


  • 希望这能有所帮助!

    我猜您正在(在irb中)键入:

    当您需要键入:

    require './example.rb'
    
    第一个告诉ruby:“需要一个名为example的变量中的内容”。因为您没有定义一个名为example的变量,所以会导致无变量或方法错误

    第二个命令告诉ruby:“require a string”“/example.rb”“。由于require方法基本上知道如何查找作为字符串传递的文件名并对文件求值,因此您将获得正确的输出

    顺便说一句,对于这个例子,example.rb需要在同一个目录中。如果example.rb在另一个目录中,您需要使用完整路径(我在这里不展开)来源代码

    您还将注意到输出将如下所示:

        3
        => true
    
    这是因为对文件进行了求值(执行代码:
    put 1+2
    ),并且
    require
    方法返回
    true
    以指示它对文件进行了求值


    如果您再次需要该文件,您将得到
    false
    ,因为该文件已加载。

    我键入了所有内容。当我键入“home/jazzlark/ruby”并按enter键时,没有显示任何内容。甚至没有显示任何内容。甚至没有显示任何内容。我一直在继续,但…没有发生任何事情。;(无论如何,感谢您的帮助。所有这些我都做了,但没有任何帮助。谢谢;(我试图让控制台看到sublime文本编辑器在做什么。这是我的主要目标。@jazzlark你的意思是,你的输出不是3?顺便说一句,sublime编辑器与irb/ruby/rails或任何东西都没有关系。它只帮助你创建/编辑文件。因此,在你的情况下,它不会起任何作用。谢谢你……我正在关注一本书。)led“学习编程”,我正在遵循指示。所以我不知道这本书为什么会误导我。我的主要目标是让控制台看到sublime文本编辑器正在做什么。在控制台中放入1+2很容易就得到控制台中的3。谢谢!没问题!只需确保您理解游戏中的3个不同概念:(1)bash(又名终端)(2)irb(ruby解释器)和(3)Sublime文本(文本编辑器)。你需要非常熟悉这三件事才能成功!Kyle,我了解所有这三件事,但我不明白为什么控制台在我输入控制台irb和ruby example.rb时没有看到升华的“puts 1+2”。明白吗?在控制台中,键入“ruby example.rb”,其中example.rb只包含“puts 1+2”,你应该对输出进行e。
    require './example.rb'
    
        3
        => true