Ruby on rails 在Rails控制台中自动定义变量
根据我的工作内容,我通常会在打开rails控制台时定义变量,例如f=Foo.last 有没有办法在我的开发环境中自动完成这项工作 无论如何,我用的是pry 我可以这样做,但会话将退出:Ruby on rails 在Rails控制台中自动定义变量,ruby-on-rails,pry,Ruby On Rails,Pry,根据我的工作内容,我通常会在打开rails控制台时定义变量,例如f=Foo.last 有没有办法在我的开发环境中自动完成这项工作 无论如何,我用的是pry 我可以这样做,但会话将退出: $ rails c <<EOF heredoc> f = Foo.last heredoc> EOF 如果您对实例变量没有问题,可以将它们添加到~/.pryrc 对于局部变量,这将不起作用,因为它们是其作用域的局部变量,因此得名 我自己做的是将所有的设置命令放在一个单独的文本文件中。然后
$ rails c <<EOF
heredoc> f = Foo.last
heredoc> EOF
如果您对实例变量没有问题,可以将它们添加到~/.pryrc 对于局部变量,这将不起作用,因为它们是其作用域的局部变量,因此得名 我自己做的是将所有的设置命令放在一个单独的文本文件中。然后在新的rails控制台中,我只是粘贴它 我不必在每次重新启动控制台时重新键入相同的定义 全局配置文件中没有污染 具有很好的短名称的局部变量,也就是说,没有@
如果您对实例变量没有问题,可以将它们添加到~/.pryrc 对于局部变量,这将不起作用,因为它们是其作用域的局部变量,因此得名 我自己做的是将所有的设置命令放在一个单独的文本文件中。然后在新的rails控制台中,我只是粘贴它 我不必在每次重新启动控制台时重新键入相同的定义 全局配置文件中没有污染 具有很好的短名称的局部变量,也就是说,没有@
除了Sergio建议的实例变量之外,您还可以在.pryrc中定义方法:
我不确定它是否具有您想要的所有语义,但它对我很有用。作为Sergio对实例变量建议的替代方案,您还可以在.pryrc中定义方法:
我不确定这是否具有您想要的所有语义,但它对我很有用。我花了一段时间寻找一种方法来实现这一点,我想到的最好方法是在一行中设置多个变量,至少是这样。请记住,我不想使用实例变量,我希望能够覆盖它们,因此方法无法工作: 在~/.pryrc中: 等等
我还发现了一篇关于方法抽象的帖子,如果你不需要重写它们的话:我想了一段时间,找到了一种方法来实现这一点,我想到的最好的方法是在一行中设置多个变量,至少是这样。请记住,我不想使用实例变量,我希望能够覆盖它们,因此方法无法工作: 在~/.pryrc中: 等等
我还发现了一篇关于抽象方法的文章,如果你不需要重写它们的话:Nice,这可能已经足够接近了。我要做的一个修改是,pry在我的Rails存储库中拾取.pryrc,这对我来说比~/.pryrc更可取。谢谢。非常好,只是c=Codebase.last在.pryrc中工作。@ErikNomitch:Hm,你有什么版本的pry?我的不拾取local.pryrc,也不从全局变量导出局部变量。很好,这可能已经足够接近了。我要做的一个修改是,pry在我的Rails存储库中拾取.pryrc,这对我来说比~/.pryrc更可取。谢谢。非常好,只是c=Codebase.last在.pryrc中工作。@ErikNomitch:Hm,你有什么版本的pry?我的不拾取local.pryrc,也不从全局导出局部变量。谢谢,-exec将是完美的,但由于我需要通过rails控制台启动pry,我不确定如何传递它。我使用的是pry rails Gem。实际上我是说你可以定义实例变量,因为局部变量不起作用你说得对,塞尔吉奥图兰采夫。我已经更新了我的答案。@ErikNomitch对此表示抱歉。我已经深入研究了pry rails,但不幸的是没有看到一个与-exec相当的现成版本。谢谢,-exec将是完美的,但由于我需要通过rails控制台启动pry,我不确定如何通过它。我使用的是pry rails Gem。实际上我是说你可以定义实例变量,因为局部变量不起作用你说得对,塞尔吉奥图兰采夫。我已经更新了我的答案。@ErikNomitch对此表示抱歉。我已经深入研究了pry rails,但不幸的是,我没有看到与-exec等价的现成版本。
@f = Foo.last
def f
@_f ||= Foo.last
end
# f, b, u, s = setup
def setup
f = Foo.last
b = Foo.bar
u = User.find(5)
s = u.settings.email_settings
[f, b, u, s]
end