为什么这个HTML代码被渲染为一个巨大的字符串而不是被评估的代码?

时间:2011-04-17 05:39:41

标签: html ruby-on-rails ruby ruby-on-rails-3 partial-views

此代码部分:

<div class ="vote_updated">
    <p><%= event.actor %> <% case event.subject.value
        when 1
            puts " upvoted"
        when -1
            puts " downvoted"
        when 0
            puts " removed a vote from"  
        end %> a song. </p>
    <div class="video_div">
        <%= render 'videos/video', :video => event.secondary_subject %>
    </div>
</div>

被渲染为一个大字符串,而不是被评估的嵌入式ruby中生成的HTML代码。

这是呈现部分的代码:

<div id="feed_div">
    <%= render_timeline current_user.recent_events %>
</div>

这是render_timeline中的application_helper.rb方法:

def timeline(events)
  events.map do |event|
    render(:partial => "timeline_events/#{event.event_type}", :locals => {:event => event})
 end.join
end

1 个答案:

答案 0 :(得分:2)

可能是您在.join中对timeline的调用将字符串标记为不安全 - 可能会尝试将其更改为:

def timeline(events)
  events.map do |event|
    render(:partial => "timeline_events/#{event.event_type}", :locals => {:event => event})
 end.join.html_safe
end

看看是否有帮助: - )