Ruby on rails 没有与[GET]匹配的路由/职位/新;
我对ruby完全陌生,我正在一步一步地关注,除了我称之为“电影院”的应用程序的细节 我创建了一个名为“posts”的资源,有一个名为posts controller的控制器类。从posts/new页面,我应该发布一个带有标题的文本,并执行一个操作(show)。我试图在routes文件和controller类中添加show操作 提交表单时应调用show操作,表单包括标题和文本字段,映射到数据库中 在中,有一条不明确的指示:它说要添加这一行:Ruby on rails 没有与[GET]匹配的路由/职位/新;,ruby-on-rails,ruby,Ruby On Rails,Ruby,我对ruby完全陌生,我正在一步一步地关注,除了我称之为“电影院”的应用程序的细节 我创建了一个名为“posts”的资源,有一个名为posts controller的控制器类。从posts/new页面,我应该发布一个带有标题的文本,并执行一个操作(show)。我试图在routes文件和controller类中添加show操作 提交表单时应调用show操作,表单包括标题和文本字段,映射到数据库中 在中,有一条不明确的指示:它说要添加这一行: post GET /posts/:id(.:for
post GET /posts/:id(.:format) posts#show
到我的routes.rb
文件,但它没有明确说明在哪里编写,我把它放在resources:posts
下(可能是放错地方了,它没有说明这一点)
我还向控制器类添加了show方法:
def show
@post = Post.find(params[:id])
end
private
def post_params
params.require(:post).permit(:title,:test);
end
但当我提交表单时,仍然会出现以下错误:
rake routes
命令结果:
前缀动词URI模式控制器#操作欢迎\索引获取/欢迎/索引(:格式)欢迎\索引
根目录获取/欢迎#索引
帖子获取/帖子(:格式)帖子#索引
帖子/帖子(:格式)帖子#创建
新建帖子获取/帖子/新建(:格式)帖子#新建
编辑_post GET/posts/:id/edit(:format)posts#edit
post GET/posts/:id(:format)posts#show
补丁/帖子/:id(:格式)帖子#更新
PUT/posts/:id(:format)posts#update
DELETE/posts/:id(:format)posts#destroy
它不会告诉您将其添加到
routes.rb
。它是自动创建的路线之一,使用:
resources :posts
从路由中删除该行。rb
重新启动服务器并继续本教程
提示:您可以运行
rake routes
查看应用程序中的所有可用路由。它不会告诉您将其添加到routes.rb
。它是自动创建的路线之一,使用:
resources :posts
从路由中删除该行。rb
重新启动服务器并继续本教程
提示:您可以运行
rake routes
查看应用程序中的所有可用路由。您的整个问题似乎与我完全矛盾。- 您从未在rails路线中执行此操作-
而是在routes.rb文件中。post-GET/posts/:id(:format)posts#show
get'posts/:id'=>'posts#show'
- 路由是基于优先级(先到先得)完成的,因此如果您在resources:posts之后添加get'posts/:id',那么它没有任何用处,因为resources:posts已经为您完成了这项工作(请阅读参考资料中的rails路由指南)
- 您提交的表单应该是一个post数据,如果您使用的是资源,“new”应该是一个“get”数据,相应的“post”应该是“create”。您的“新建”路由有错误,那么您还将在哪里呈现表单以提交表单数据
我的建议是您保留“resources:post”,并从routes文件中删除与您的:post相对应的其他内容。如果你把其他的一切都做对了,那么它可能会很好。你的整个问题似乎与我完全矛盾。
- 您从未在rails路线中执行此操作-
而是在routes.rb文件中。post-GET/posts/:id(:format)posts#show
get'posts/:id'=>'posts#show'
- 路由是基于优先级(先到先得)完成的,因此如果您在resources:posts之后添加get'posts/:id',那么它没有任何用处,因为resources:posts已经为您完成了这项工作(请阅读参考资料中的rails路由指南)
- 您提交的表单应该是一个post数据,如果您使用的是资源,“new”应该是一个“get”数据,相应的“post”应该是“create”。您的“新建”路由有错误,那么您还将在哪里呈现表单以提交表单数据
尝试重新启动您的rails服务器您可以向我们显示您的
路由.rb
文件吗?通过运行向我们显示您的路由:rake routes
尝试重新启动您的rails服务器您可以向我们显示您的路由.rb
文件吗?通过运行向我们显示您的路由:rake routes
这应该做什么?这应该做什么?