我正在使用Ruby的Highline gem从用户那里获得输入。 我问以下
note = ask("Enter a note for this entry: ")
这很好,但是如果用户编辑了该条目 我想用这个问题的现有答案填充提示,以便可以直接编辑它而不是再次输入。
类似的东西:
note = ask("Enter a note for this entry: ", :current => note)
# Output:
Enter a note for this entry: the current note_
答案 0 :(得分:0)
我从未使用过highline gem,但是ask方法的文档表明它需要一个可选块。我想你会这样做:
note = ask("Enter a note for this entry: ") { |q| q.default = "Default Answer" }
答案 1 :(得分:0)
有点太晚了,但是:
我发现此问题的最佳解决方案是使用completion
块中的ask
属性。
所以当你编写以下代码时:
input = "Foobar" #default
loop do
input = ask("Input: ") { |q| q.completion = [input]; q.readline = true }
end
你最终得到了这个
Input: Fo<hit tab>
Input: Foobar
在每次迭代中,您都会更新completion
,以便您可以轻松获取上次迭代的输入。