我是 Rails 新手,对 ruby 知之甚少,我刚刚看了 Rails Guide 4.0 的教程。一切都很顺利,只是停留在一个错误上:找不到没有 ID 的帖子。
我按照 Rails Guide Getting Started Of Rails 做了所有事情。
这是来自 rails guide 的代码:
def show
@posts = Post.find(params[:id])
end
这是查看代码:
<p>
<strong>Title:</strong>
<%= @posts.title %>
</p>
<p>
<strong>Text:</strong>
<%= @posts.text %>
</p>
在此代码导轨指南告诉您最终应该能够创建新帖子之后。访问 localhost:3000/posts/new 并试一试!但是在创建新帖子后它向我显示错误。
我认为这可能是问题,因为我还没有创建索引操作,所以我完成了索引,在索引操作之后,当我尝试正常访问该地址时,它应该显示数据库中的所有记录,而不是显示显示相同错误的记录:Couln'找不到没有 ID 的帖子
我在 stackoverflow 上尝试了太多帖子,但都与其他一些对我无用的操作有关。
请帮我解决这个问题,我只是认为这不应该是因为我正在遵循 Rails 指南。
我正在关注 Rails 入门指南,因为它说我添加了索引操作和显示操作。因此,正如书中所说,当您访问此地址 /posts 时,您应该看到所有帖子,并且当您创建新帖子时,它会重定向以显示您输入的最后一篇帖子,
我正在使用redirect_to @post,但随之而来的错误我卡住了然后我使用redirect_to action: :show, id: @post.id
当我创建一个新帖子时它正在工作,然后它重定向到 /posts?id=last_inserted_id 但是我看到其他脚手架地址应该是 posts/1 等,当我访问 /posts 它应该显示所有在控制器中定义为索引的帖子操作.
routes.rb
<code>
Blog::Application.routes.draw do
root "welcome#new"
resource :posts
</code>
控制器 :
class PostsController < ApplicationController
def index
@post = Post.all
respond_to do |format|
format.html #index.html.erb
end
end
def show
@post = Post.find(params[:id])
respond_to do |format|
format.html #show.html.erb
end
end
def new
end
def create
@post = Post.new post_params
@post.save
redirect_to action: :show, id: @post.id
end
private
def post_params
params.require(:post).permit(:title, :message)
end
end
谢谢