根据我正在处理的内容,我会在打开f = Foo.last
时定期定义变量(例如rails console
)。
有没有办法在我的开发环境中自动执行此操作?
为了它的价值,我使用撬。
我可以这样做,但会话将退出:
$ rails c <<EOF
heredoc> f = Foo.last
heredoc> EOF
答案 0 :(得分:4)
作为Sergio对实例变量的建议的替代方法,您还可以在.pryrc
中定义方法:
def f
@_f ||= Foo.last
end
我不确定这有你想要的所有语义,但它对我有用。
答案 1 :(得分:3)
如果您对实例变量不满意,可以将其添加到~/.pryrc
@f = Foo.last
使用局部变量,这不会起作用,因为它们的范围是本地的(因此名称)。
我自己做的是拥有所有&#34;设置&#34;命令在单独的文本文件中。然后在新的rails控制台中,我只是粘贴它。
@
)答案 2 :(得分:0)
我反复考虑了一段时间以实现此目的,而我想出的最好的方法是至少在一行中设置多个变量。 (请记住,我不想使用实例变量,并且希望能够覆盖它们,因此方法将无法使用):
在~/.pryrc
中:
# 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
以此类推。
我还发现了一篇涵盖抽象方法方法的帖子,如果您不需要覆盖它们的话:http://kevinkuchta.com/_site/2014/09/load-useful-data-in-rails-console/