我正在rubyonrails.org上做RoR教程,并且在向帖子添加评论之前一直很好。
当我点击进入'显示'一篇文章,我收到以下错误:
帖子#show中的我有一个关于posts_controller.rb的show方法(见下文),除非在rails指南上有一个错字(可能,因为其他地方还有其他的),我认为还有一些东西继续我的routes.rb。
它表示错误发生在/show.html.erb的第25行附近。
的标题 <%= @ post.title%>
<p>
<strong>Text:</strong>
<%= @post.text %>
</p>
<h2>Comments</h2>
<% @post.comments.each do |comment| %>
<p>
<strong>Commenter:</strong>
<%= comment.commenter %>
</p>
<p>
<strong>Comment:</strong>
<%= comment.body %>
</p>
<% end %>
<h2>Add a comment:</h2>
<%= form_for([:post, @post.comments.build]) do |f| %>
<p>
<%= f.label :commenter %><br />
<%= f.text_field :commenter %>
</p>
<p>
<%= f.label :body %><br />
<%= f.text_area :body %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
<%= link_to 'Back', posts_path %>
<%= link_to 'Edit', edit_post_path(@post) %>
/posts_controller.rb
class PostsController < ApplicationController
def new
@post = Post.new
end
def index
@post = Post.all
end
def show
@post = Post.find(params[:id])
end
def create
@post = Post.new(params[:post].permit(:title, :text))
if @post.save
redirect_to @post
else
render 'new'
end
def edit
@post = Post.find(params[:id])
end
end
def update
@post = Post.find(params[:id])
if @post.update(params[:post].permit(:title, :text))
redirect_to @post
else
render 'edit'
end
end
def destroy
@post = Post.find(params[:id])
@post.destroy
redirect_to posts_path
end
private
def post_params
params.require(:post).permit(:title, :text)
end
end
的routes.rb
Myapp::Application.routes.draw do
resources :posts do
resources :comments
end
root "welcome#index"
end
我认为错误与我的routes.rb文件有关,但我无法弄明白究竟是什么。我是否错误地将我的路线嵌套到评论中?