我希望允许用户使用Dinosaurus gem查找单词。我有这个部分想出来,我有它,所以用户输入他们想要的句子和段落的数量。这是使用后期处理显示的。但是,我希望能够使用句点("."
)分隔每个单独的句子,但我不知道在我的帖子过程中我会在哪里以及如何编写。
这是我的HTML文件中的代码,带有<form>
标记。在表单中,我将变量@nsentences
和@nparagraphs
指定为每个段落的句子数和用户输入的段落数。
<form action = "/process" method="post">
Topic: <input type="text" name ="word"></br>
Number of Sentences <input type="text" name="nsentences"></br>
Number of Paragraphs <input type="text" name="nparagraphs"></br>
<input type="submit" value="Submit">
</form>
这是我的app.rb文件中的后期处理,该文件从上面链接到我的HTML文件。在app.rb文件中:
post '/process' do
@topic = params['word']
@nsentences = params['nsentences']
@nparagraph = params['nparagraphs']
results = []
results = Dinosaurus.lookup(@topic)
results2 = []
results2 = Dinosaurus.lookup(results['noun']['syn'].sample)
y = @nsentences.to_i
z = @nparagraph.to_i
@nwords = []
@sentences = []
@content = []
results['noun']['syn'].each do |word|
@nwords << word
end
results2['noun']['syn'].each do |word|
@nwords << word
end
y.times do
a_sentence = []
15.times do
a_sentence << @nwords.sample
end
这是我在数组@sentences
中推送句子的地方,这是一个空白数组,其中包含用户想要的y
个句子。
@sentences << a_sentence #.join('. ') #.to_s + "."
end
z.times do
@content << @sentences #.join('. ') #clean #.join(' ') #clean
end
@contentclean = @content.join(' ')
erb :some_file
end
在我的ERB文件中,我已将其设为显示@contentclean
。
答案 0 :(得分:0)
不要使用:
y.times do
...
end
相反,使用“。”将句子添加到集合中(使用map
)和join
:
(1..y).map{(1..15).map{@nwords.sample}.join}.join(". ")