在 Rails 4 rails console
中,我可以输入 history
,它的行为就像来自 bash shell 的 history
命令。例如。:
[25] my_rails_project » history
1: Nomination
2: {:ad => "asdfsdasadf"}
3: Nomination.count
4: Nomination.count.to_sql
5: Nomination.all.class
6: Nomination.all.to_sql
...
有没有办法搜索该历史记录,例如
history | grep Nomination
?尾部呢?注意:当我最初写这个问题时,我认为
history
命令来自 Rails 本身,但它来自我系统中的 pry
gem(我的 Gemfile 指定了拉入 pry 的 jazz_hands
gem)。 Pry 实际上具有 grep
功能,例如history --grep Nomination
会给我上面的第 1 行和第 3-6 行。它还具有 tail
功能。这些记录在此处:https://github.com/pry/pry/wiki/History
最佳答案
为此,您可以使用 ~/.irb-history
。因此,可以使用以下内容(您必须知道如何执行此操作,但这仅供引用):
tail -fn0 ~/.irb-history # for tailing
cat ~/.irb-history | grep something # for searching
请注意,您可能同时拥有两个文件:
~/.irb-history
和 ~/.irb_history
,其中任何一个都可以比另一个更新。我还没有能够解开这个谜团。因此,请使用您认为更适合自己的那个。UPDATE :您可以使用以下逻辑访问变量中的历史记录(我花了一段时间阅读 Pry 使用的代码,在 pry 中尝试
edit history
): def pry_history
arr = []
history = Pry::History.new
history.send(:read_from_file) do |line|
arr.push line.chomp
end
arr
end
现在,您可以简单地调用
pry_history
来获取一组 pry 的历史记录。您可以进一步将其保存在 .pryrc
配置文件中,并在需要时随时使用。
关于ruby-on-rails - Rails 控制台历史命令(通过 pry)——它可以被 grepped 或 tailed 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20692742/