我在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 Set of Settling”的歌曲时,艺术家属性为“Cutie for Cutie”,而专辑atrribute为“Transatlanticism”,当我渲染时没有任何内容出现索引视图。
答案 0 :(得分:1)
正如@ house9和@bdares所说,我:posts
行动create
时应该是:post
。
答案 1 :(得分:1)
对于这种情况,command line非常宝贵。
$ 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!
它允许您事先消除大多数问题。