在特定点处将句点标记插入数组中

时间:2014-10-20 20:58:02

标签: html ruby-on-rails ruby rubymine

我希望允许用户使用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

1 个答案:

答案 0 :(得分:0)

不要使用:

y.times do
  ...
end

相反,使用“。”将句子添加到集合中(使用map)和join

(1..y).map{(1..15).map{@nwords.sample}.join}.join(". ")