使用Rails渲染多行文字?

时间:2009-02-24 16:55:39

标签: ruby-on-rails ruby text render multiline

我想在Rails中渲染多行文本,操作如下:

def mutli_text
  render :text => 'Word1\nWord2'
end

我希望回复是:

Word1
Word2

不幸的是我得到了Word1 \ nWord2

任何帮助将不胜感激

(该操作必须呈现多行响应才能使自动完成jquery插件正常工作)

3 个答案:

答案 0 :(得分:14)

"Word1\nWord2"

您必须使用双引号才能使用转义字符。

但是如果你想在浏览器中实际换行,你需要把它变成一个真正的html标签。

'Word1<br/>Word2'

甚至:

"Word1<br/>\nWord2"

答案 1 :(得分:2)

你实际上可以这样做:

(render :text => "line1\nline2").gsub("\n",'<br />')

它至少适用于视图中的#render(使用HAML)。我没有在控制器动作中尝试过它。

答案 2 :(得分:0)

只需将文字呈现为SELECT /*+ USE_HASH(x) */ ACTIVITY_DAY , SUM(ORDERED_UNITS) , SUM(ORDERED_AMT) FROM ( SELECT ACTIVITY_DAY,ORDERED_UNITS,ORDERED_AMT FROM D_DAILY_ORDERS WHERE REGION_ID = 1 AND MARKETPLACE_ID = 1 AND ACTIVITY_DAY BETWEEN TO_DATE('20160409','YYYYMMDD') AND TO_DATE('20160505','YYYYMMDD') AND ID IN ('B019433MGC', 'B019433O4C', 'B00STUX0F0', 'B017SL40S6', 'B00ZHJDJ5W', 'B00STUX276', 'B017SL44RI', 'B00ST415S0', 'B00ST414O0') UNION ALL SELECT ACTIVITY_DAY,ORDERED_UNITS,ORDERED_AMT FROM D_DAILY_ORDERS WHERE REGION_ID = 1 AND MARKETPLACE_ID = 1 AND ACTIVITY_DAY BETWEEN TO_DATE('20160501','YYYYMMDD') AND TO_DATE('20160505','YYYYMMDD') AND ID IN ('B007V4YR5M', 'B00BHQ9CHI') ) x GROUP BY ACTIVITY_DAY ORDER BY ACTIVITY_DAY ; 即可。如果您愿意,甚至可以将内容类型更改为csv。

plain