2017-08-12 66 views
0
- upcoming = "" 
- past = "" 
- @saves.each do |save| 
    - if save.con1 
    - upcoming += render "save_individual" 
    - else if save.con2 
    - past += render "save_individual" 

    - if params[:show_saved] 
    .tab-content 
     #upcoming.tab-pane.fade.in.active 
     = upcoming 
     #past.tab-pane.fade 
     = past 
    - else 
    = render "save_individual" 

我想重用现有的视图两页,一个将展示无标签内容和其他与各自过滤的内容过去/即将到来的标签,就是我想是正确的,我看到纯HTML输出虽然,有没有合法的方式来做到这一点?轨存储在渲染视图可变

+0

这看起来像这样的布局可能不正确。您是否想为每次保存创建一个标签,或者在结尾包含所有保存的单个标签? – michaeldever

+0

是的,你是对的,纠正它,谢谢并应用@Simple Lime的解决方案。 –

回答

1

你在做什么似乎工作,你只需要使这些字符串html_safe(你也可以使用sanitizeraw)。

= upcoming.html_safe 

= past.html_safe 

应该修复它。请注意,这会向您提供恶意用户输入,如果这是可能性,sanitize助手是您的朋友。

更简单的方法来完成你正在做的事情可能会做这样的事情:

- if params[:show_saved] 
    .tab-content 
    #upcoming.tab-pane.fade.in.active 
     - @saves.select(&:con1).each do |save| 
     = render 'save_individual' 
    #past.tab-pane.fade 
     - @saves.select { |save| save.con2 && !save.con1 }.each do |save| 
     = render 'save_individual' 
- else 
    = render 'save_individual' 

这是未经测试,但显示的总体思路,我想。

+0

@ michael指出,缩进似乎在你的例子中,我的例子假设' - if params [:show_saved]'应该与' - @ users.each do | save |'行一致 –

0

您是否尝试过render_to_string?