0

ダムスタックオーバーフローはより多くのコンテキストを要求します...私が行っているインデックス投稿ページを開きます(以下)。奇妙な理由で、実際のテキストの下に余分な配列が表示されます。なぜ?

<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

Ayyのアイデア、私はこのように表示します。

Yippi

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

2 に答える 2

3

<h1><%= @posts.each do |post| %></h1>読む必要があります<h1><% @posts.each do |post| %></h1>

<%=%>を使用している場合、その出力はerbファイルにあります。コンソールにposts.eachと入力すると、returnステートメントが投稿の配列をpeすることがわかります。<%ではなく<%=を使用しているため、その配列をerbに出力しています。

この投稿には、ERB sytanxに関するもう少し詳しい情報があります:RailsのERBの<%、<%=、<%#、-%>の違いは何ですか?

于 2013-01-25T16:48:50.060 に答える
0
<% @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 %>
于 2013-01-25T17:13:45.267 に答える