Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 没有与[GET]匹配的路由/职位/新;_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 没有与[GET]匹配的路由/职位/新;

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

我对ruby完全陌生,我正在一步一步地关注,除了我称之为“电影院”的应用程序的细节

我创建了一个名为“posts”的资源,有一个名为posts controller的控制器类。从posts/new页面,我应该发布一个带有标题的文本,并执行一个操作(show)。我试图在routes文件和controller类中添加show操作

提交表单时应调用show操作,表单包括标题和文本字段,映射到数据库中

在中,有一条不明确的指示:它说要添加这一行:

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路线中执行此操作-
    post-GET/posts/:id(:format)posts#show

    而是在routes.rb文件中。
    get'posts/:id'=>'posts#show'

  • 路由是基于优先级(先到先得)完成的,因此如果您在resources:posts之后添加get'posts/:id',那么它没有任何用处,因为resources:posts已经为您完成了这项工作(请阅读参考资料中的rails路由指南)

  • 您提交的表单应该是一个post数据,如果您使用的是资源,“new”应该是一个“get”数据,相应的“post”应该是“create”。您的“新建”路由有错误,那么您还将在哪里呈现表单以提交表单数据


我的建议是您保留“resources:post”,并从routes文件中删除与您的:post相对应的其他内容。如果你把其他的一切都做对了,那么它可能会很好。

你的整个问题似乎与我完全矛盾。

  • 您从未在rails路线中执行此操作-
    post-GET/posts/:id(:format)posts#show

    而是在routes.rb文件中。
    get'posts/:id'=>'posts#show'

  • 路由是基于优先级(先到先得)完成的,因此如果您在resources:posts之后添加get'posts/:id',那么它没有任何用处,因为resources:posts已经为您完成了这项工作(请阅读参考资料中的rails路由指南)

  • 您提交的表单应该是一个post数据,如果您使用的是资源,“new”应该是一个“get”数据,相应的“post”应该是“create”。您的“新建”路由有错误,那么您还将在哪里呈现表单以提交表单数据

我的建议是您保留“resources:post”,并从routes文件中删除与您的:post相对应的其他内容。如果你有其他的一切权利,那么它可能会工作良好

  • 资源:员额 删除它
  • 铁轨
  • 粘贴资源:帖子
  • 铁轨 我成功了
  • 资源:员额 删除它
  • 铁轨
  • 粘贴资源:帖子
  • 铁轨 我成功了

  • 尝试重新启动您的rails服务器您可以向我们显示您的
    路由.rb
    文件吗?通过运行向我们显示您的路由:
    rake routes
    尝试重新启动您的rails服务器您可以向我们显示您的
    路由.rb
    文件吗?通过运行向我们显示您的路由:
    rake routes
    这应该做什么?这应该做什么?