0

私は次のような見方をしていますapp/views/posts/index.html.erb

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

<%= post.user %> is listening to <%= post.song %> by <%= post.artist %> from <%= post.album %>

<% end %>

そして対応するコントローラー:

class PostsController < ApplicationController
  def index
    @posts = Post.find(:all)   
  end

  def show
    @post = Post.find(params[:id])  
  end 

  def new
    @post = Post.new           
  end

  def create                   
    @post = Post.new(params[:posts])
    if @post.save              
      redirect_to action: "index"     
    else                       
      @posts = Post.find(:all) 
      render action: 'new'     
    end
  end
end

問題は、曲の属性が「The Sound of Settling」、アーティストの属性が「Death Cab for Cutie」、アルバムの属性が「Transatlanticism」のレコードを作成すると、インデックスビューをレンダリングしても何も表示されないことです。 。

4

2 に答える 2

1

@ house9と@bdaresが言ったように、私はそれがあったはずのとき:postsに私の行動を起こしました。create:post

于 2012-12-25T15:47:12.880 に答える
1

このような状況では、コマンドラインは非常に貴重です。

$ rails console

次に、遊んで、データを挿入し、フェッチします。ここで何がうまくいかないかから始めます。

> @posts = Post.find(:all)
> pp @posts

結果がありません?投稿はまったくありません。おそらく挿入の問題が原因です:

> @post = Post.new({:user => 1, :song => "give it up", :artist => "rick", :album => "youtube greatest hits"})
> @post.valid?
> pp @post.errors
> @post.save!

それはあなたが前もってほとんどの問題を取り除くことを可能にします。

于 2012-12-25T15:47:34.423 に答える