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 回答