在pry控制台中是否有类似grep的功能?

时间:2015-02-01 08:22:38

标签: ruby-on-rails ruby pry

我想在rails中的pry控制台中使用类似grep的函数。例如,当我有这样的模型时:

pry(main)> show-model Post
Company
  id: integer
  title: string
  author: string
  content: text
  created_at: datetime
  updated_at: datetime

我想过滤输出,如:

pry(main)> show-model Post --grep "string"
  title: string
  author: string

pry(main)> show-model Post --grep "content"
  content: text

似乎在pry中--grep命令有ls选项。我用show-model命令找不到类似的功能。有办法吗?

3 个答案:

答案 0 :(得分:3)

旧问题,但它仍然弹出在Google搜索的顶部。

您可以在pry中将一个标志传递给ls,这基本上与传递给grep的功能相同:

ls Post -G "content"

通过ls -h可以获得标志的完整列表,具体方法如下:https://stackoverflow.com/a/58879455/2709804

答案 1 :(得分:0)

你不能直接这样做 但你可以将命令输出写入文本文件,然后使用cat,grep 看到这个答案https://stackoverflow.com/a/13380275

irb(main):015:0> f = File.new("statements.xml", 'w')
irb(main):016:0> f << Account.find(1).statements.to_xml
irb(main):017:0> f.close

答案 2 :(得分:0)

当前,我正在使用column_names方法和Array#grep来实现此目的。

pry(main)> Post.column_names.grep(/string/)
[
   [0] "title"
   [1] "author"
]