在循环遍历表之后,rails显示一个完整的表数组

时间:2015-07-28 08:34:16

标签: ruby-on-rails arrays ruby view

我试图在Ruby上创建一个关于rails的博客,我想在我的视图中显示posts表。简单就像我的好看,有些事情会失败。循环遍历整个表并将记录呈现到我的视图后,它还会将包含完整表的数组呈现给我的视图。 the index view

创建此视图的代码是:

<%= @posts.each do |post| %>
    <div class="post_wrapper"> 
        <h1 class="title">
          <%= post.title %>
        </h1>

        <p class="date">
          Submitted <%= time_ago_in_words(post.created_at) %> Ago
        </p>

        <p class="body">
          <%= post.body %>
        </p>
    </div>
    <p style="color:red; font-size:1.5em;">the array is added after the div</p>
<%end%>
<p style="color:red; font-size:1.5em;">but still inside the loop</p>
<br />
<%= link_to "New post", new_post_path %>

4 个答案:

答案 0 :(得分:1)

<%= @posts.each do |post| %>
   ...
<%end%>

由于<%=符号,您必须改为使用<%

<% @posts.each do |post| %>
   ...
<%end%>

因为each返回调用它的数组,并且你使用<%=符号来运行Ruby代码并显示它,这就是为什么你在最后有一个数组的原因你打电话给each

答案 1 :(得分:1)

您需要更改此行

<%= @posts.each do |post| %>

<% @posts.each do |post| %>

答案 2 :(得分:1)

第一行应该是<%而不是<%=

使用<%=渲染html中的内容。对于.each,您不需要渲染您正在使用的对象,因此<%可以正常工作。

简单语法错误:)

答案 3 :(得分:0)

尝试更改此代码:

<%= @posts.each do |post| %>

进入这个:

<% @posts.each do |post| %>

<% @posts符号表示您想要一起显示实例变量,但您只想评估它。