如何在辅助方法中为对象数组渲染部分模板?

时间:2013-09-20 15:35:45

标签: ruby-on-rails ruby arrays templates rendering

我正在使用Ruby on Rails 3.2.13,我想在辅助方法中为一组对象渲染部分模板。也就是说,在我的帮助文件中,我有:

def render_articles(articles)
  articles.each do |article|
    render :partial => ...
  end
end

但是,上述方法不会返回部分模板,而是返回数组。我该如何正确呈现这些?

1 个答案:

答案 0 :(得分:0)

您拥有的each块不会返回块的内容,而是返回数组本身。您需要一种机制来返回内容。

方法:

def render_articles(articles)
  html = ""
  articles.each do |article|
    html += render :partial => ...
  end
  html.html_safe
end

另一种方法:

def render_articles(articles)
  articles.inject("") { |html, article| html + render :partical =>... }.html_safe
end