如何迭代集合并在ERB中的一行中输出属性?
我尝试过以下操作,但输出整个对象:
<%= Post.all.each {|p| (content_tag :div, p.title)} %>
答案 0 :(得分:1)
正如@nmeylan指出的那样,调用Post.all并不是一个好习惯。
我会使用@posts作为例子。你可以尝试:
<%= @posts.map { |p| content_tag :div, h(p.title) }.join.html_safe %>
由于rails 4默认情况下会转义HTML,因此您必须致电html_safe
或raw
。但似乎p.title是用户输入,因此必须进行转义。
答案 1 :(得分:0)
首先,您在视图中调用ActiveRecord方法(Post.all),这是一个不好的做法,在控制器中调用它。
然后,为了回答您的问题,我会使用content_tag_for method或div_for