首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件加载到rails控制台,并访问此文件中定义的变量

将文件加载到rails控制台,并访问此文件中定义的变量
EN

Stack Overflow用户
提问于 2011-10-22 22:36:21
回答 2查看 13.1K关注 0票数 16

我使用rails控制台,经常需要预先加载一些ruby代码来使用。

代码语言:javascript
复制
#file that i want to load in rails console
#my_file.rb
a = 1
b = 2
puts a + b 

当我使用./script/console运行控制台时

代码语言:javascript
复制
rails-console :001 > load 'my_file.rb' 
3
 => []
rails-console :002 > a
NameError: undefined local variable or method 'a' for #<Object:123445>

如何在控制台中访问我的'a‘和'b’变量?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-22 22:52:12

当您加载文件时,本地变量在文件加载后会超出作用域,这就是a和b在加载它的控制台中不可用的原因。

由于您将a和b视为常量,那么将它们大写如下如何?

代码语言:javascript
复制
A = 1
B = 2
puts A+B

现在,在您的控制台中,您应该能够执行以下操作

代码语言:javascript
复制
load 'myfile.rb'
A #=> 1

或者,您可以将myfile.rb中的变量设为全局变量($a、$b)

票数 18
EN

Stack Overflow用户

发布于 2011-10-22 22:43:19

首先,你应该使用irbrc。例如,请阅读更多here

然后你可以在irbrc中定义一个方法来模拟你的变量:

代码语言:javascript
复制
def a
 [1, 2, 4]
end

但我更喜欢将方法添加到特定的Ruby类中,比如:

代码语言:javascript
复制
class Array
  def self.toy(n=10,&block)
    block_given? ? Array.new(n,&block) : Array.new(n) {|i| i+1}
  end
end 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7860284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档