如何在ERB中迭代一個集合並輸出一行中的屬性?ERB中的一行迭代和輸出
我試過以下,但輸出的整個對象:
<%= Post.all.each {|p| (content_tag :div, p.title)} %>
如何在ERB中迭代一個集合並輸出一行中的屬性?ERB中的一行迭代和輸出
我試過以下,但輸出的整個對象:
<%= Post.all.each {|p| (content_tag :div, p.title)} %>
由於@nmeylan指出,鑑於調用Post.all是不是一個好的做法。
我會使用@posts作爲下面的例子。你可以嘗試:
<%= @posts.map { |p| content_tag :div, h(p.title) }.join.html_safe %>
由於軌道4默認情況下逃生的HTML,你必須調用html_safe
或raw
。但似乎p.title是一個用戶輸入,所以它必須被轉義。
首先,你在呼喚你的觀點一個ActiveRecord方法(Post.all),這是一個不好的做法,叫它你的控制器。
然後,回答你的問題我會用content_tag_for method或div_for