输出方法结果为erb

时间:2016-11-18 04:55:31

标签: ruby sinatra

我正在开发一个创建随机句子的应用程序。我有它作为控制台应用程序工作,并希望制作一个Sinatra应用程序,让我在浏览器上显示句子。

我有一个从表单填充的变量@grammar。我想将这个方法传递给一个方法,这些方法一起工作以接收字符串并使用大量逻辑从中生成随机句子。我的rsg.erb文件看起来像这样。

其中'波浪预示着今晚的黄色大花。'是expand方法的输出。我想在erb文件上显示它,以便它显示在浏览器上。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

<%= @grammar %>

<%-# Assigning values to the variables in first step %>
<%-
  rds = read_grammar_defs(@grammar) #get text from file and parse
  sds = rds.map { |rd| split_definition rd} #use split definition to make array of strings
  tgh = to_grammar_hash(sds) #create hash
  rs = expand(tgh) #create sentence
%>

<%-# Printing it in second step %>
<%= rs %>