Ruby on rails 不能';找不到id为show的帖子?
我一直在编写RubyonRails v.4.0.0指南,刚刚完成了最后一段代码。但我有三个问题,我认为可能来自一个来源。无论什么原因,我的表演方式似乎都不管用。我有一个“show”视图,但它给了我一个错误“找不到id=show的帖子”。告诉我PostsController的第35行是错误的。我已经找了一段时间了,似乎找不到任何有类似问题的人。这是控制器和视图 控制器:Ruby on rails 不能';找不到id为show的帖子?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我一直在编写RubyonRails v.4.0.0指南,刚刚完成了最后一段代码。但我有三个问题,我认为可能来自一个来源。无论什么原因,我的表演方式似乎都不管用。我有一个“show”视图,但它给了我一个错误“找不到id=show的帖子”。告诉我PostsController的第35行是错误的。我已经找了一段时间了,似乎找不到任何有类似问题的人。这是控制器和视图 控制器: 1 class PostsController < ApplicationController 2
1 class PostsController < ApplicationController
2
3 http_basic_authenticate_with name: "dhh", password: "secret",
4 except: [:index, :show]
5
6 def new
7 @post = Post.new
8 end
9
10 def create
11 @post = Post.new(params[:post])
12
13 if @post.save
14 redirect_to @post
15 else
16 render 'new'
17 end
18 end
19
20 def edit
21 @post = Post.find(params[:id])
22 end
23
24 def update
25 @post = Post.find(params[:id])
26
27 if @post.update(params[:post].permit(:title, :text))
28 redirect_to @post
29 else
30 render 'edit'
31 end
32 end
33
34 def show
35 @post = Post.find(params[:id])
36 end
37
38 def index
39 @post = Post.all
40 end
41
42 def destroy
43 @post = Post.find(params[:id])
44 @post.destroy
45
46 redirect_to posts_path
47 end
48
49 private
50 def post_params
51 params.require(:post).permit(:title, :text)
52 end
53 end
1类PostsController
视图:
1
2
3标题:
4.
五,
6.
7
8文本:
9
十,
11
12
13
14评论
15
16
17添加评论:
18
19
20
21 |
完全错误是:
ActiveRecord::在PostsController#show中找不到RecordNot
找不到id为show的帖子
注意:我有阅读障碍,所以可能只是拼写错误
params[:id]
等于“show”
,而不是某个真实的id。可能您试图访问错误的url,如/posts/show
,而不是/posts/1
或任何id。params[:id]
等于“show”
而不是一些真实的ID。可能你试图访问错误的url,如/posts/show
,而不是/posts/1
或任何ID。我无法评论,因此这是目前的答案,但你能确认你要访问的url包含你要查找的帖子的ID吗?如果它正在寻找ID为“show”的帖子,听起来你可能会选择yourUrl/posts/show
,而不是yourUrl/posts/1我无法发表评论,所以这是一个暂时的答案,但是你能确认你将要找到的帖子的URL包含ID吗?如果它正在寻找ID为“show”的帖子,听起来你可能会选择yourUrl/posts/show
,而不是yourUrl/posts/1
你是否将PostController放置在routes.rb中
资源:员额
是否将后控器放置在routes.rb中
资源:员额
你能给我们看一下你的路线.rb
?你能给我们看一下你的路线.rb
?嗯。。。这似乎是个问题,但同时指南说我应该能够在我的url中看到我的帖子/显示,我的帖子/索引给了我相同的错误(因此多个问题=>1个来源),所以我应该给你更多的文件,还是我犯了一些愚蠢的错误?@Therafer,你是在看吗?当他们谈论.erb
模板时,您可能会感到困惑。您的视图文件确实被命名为/posts/show
,并附加了.html.erb
,但这与URL没有任何区别(不是直接的)。最终,您的路由文件(routes.rb)指定哪个控制器操作响应请求的URL,并呈现一个类似命名的视图模板(除非您在控制器中另有指定),如何将其更改为响应/posts/show?id=1而不是/posts/1??我的应用程序中也有同样的问题,但我可能想指定更多的参数,而不仅仅是一个idHmm。。。这似乎是个问题,但同时指南说我应该能够在我的url中看到我的帖子/显示,我的帖子/索引给了我相同的错误(因此多个问题=>1个来源),所以我应该给你更多的文件,还是我犯了一些愚蠢的错误?@Therafer,你是在看吗?当他们谈论.erb
模板时,您可能会感到困惑。您的视图文件确实被命名为/posts/show
,并附加了.html.erb
,但这与URL没有任何区别(不是直接的)。最终,您的路由文件(routes.rb)指定哪个控制器操作响应请求的URL,并呈现一个类似命名的视图模板(除非您在控制器中另有指定),如何将其更改为响应/posts/show?id=1而不是/posts/1??我的应用程序中也存在同样的问题,但我可能希望指定更多的参数,而不仅仅是请求正确路由到PostsController中的:show方法的参数。如果路由文件中没有此项,则请求不会到达那么远。请求已正确路由到PostsController中的:show方法。如果路由文件中没有此项,则请求不会到达那么远的距离。
1 <%= @post.each do |post| %>
2 <p>
3 <strong> Title: </strong>
4 <%= @post.title %>
5 </p>
6
7 <p>
8 <strong> Text: </strong>
9 <%= @post.text %>
10 </p>
11
12 <%end%>
13
14 <h2> Comments </h2>
15 <%= render @post.comments %>
16
17 <h2>Add a comment:</h2>
18 <%= render "comments/form" %>
19
20 <%= link_to 'Back to Posts', posts_path %>
21 | <%= link_to 'Edit Post', edit_post_path(@post) %>