Post.all 在下面显示内容、标题和数组.我如何删除它



Dumb stackoverflow要求更多上下文...我打开索引帖子页面(下面),出于某种奇怪的原因,实际文本下方会出现一个额外的数组。为什么?

<h1><%= @posts.each do |post| %></h1>
<p><%= post.content %></p>
<% end %>

帖子控制器:

class PostsController < ApplicationController
  def index
    @posts = Post.find(:all, :order => "content")
  end
  def new 
    @post = Post.new
  end
  def create
      @post = Post.new(params[:post])
    end
  end

用户模型:

class Post < ActiveRecord::Base
  attr_accessible :content, :title
  belongs_to :user
end

哎呀的想法,我这样展示。

Yippi
[#<Post id: 1, title: "Hello", content: "Yippi", created_at: "2013-01-25 16:36:08", updated_at: "2013-01-25 16:36:08">]

<h1><%= @posts.each do |post| %></h1>应改为<h1><% @posts.each do |post| %></h1>

当您使用 <%= %> 时,它的输出将位于您的 ERB 文件中。如果你在控制台中键入 posts.each,你会看到 return 语句将 pe 帖子数组。您正在将该数组输出到 erb 中,因为您使用的是 <%= 而不是 <%

这篇文章有关于ERB sytanx的更多信息:在Rails中的ERB中,<%,<%=,<%#和-%>有什么区别?

<% @posts.each do |post| %>
  <tr>
    <td><%= post.title %></td>
    <td><%= post.content %></td>
    <td><%= post.created_date %></td>
    <td><%= post.updated_date %></td>
   </tr>
<% end %>

相关内容

  • 没有找到相关文章

最新更新