Ruby on rails Rails路由错误-非常混乱

Ruby on rails Rails路由错误-非常混乱,ruby-on-rails,ruby,Ruby On Rails,Ruby,因此,目前我正在学习RubyonRails的Photoblog教程(我的版本是5.0.1) 现在我有一个不断的路由错误 我的routes.rb如下所示,由Rails生成 Rails.application.routes.draw do get 'posts/new' get 'posts/create' end 当我执行rake routes时,我得到了这个 Prefix Verb URI Pattern Controller#Action

因此,目前我正在学习RubyonRails的Photoblog教程(我的版本是5.0.1)

现在我有一个不断的路由错误

我的
routes.rb
如下所示,由Rails生成

Rails.application.routes.draw do


  get 'posts/new'

  get 'posts/create'

end
当我执行
rake routes
时,我得到了这个

      Prefix Verb URI Pattern             Controller#Action
   posts_new GET  /posts/new(.:format)    posts#new
posts_create GET  /posts/create(.:format) posts#create
让我好奇的是,当我手动访问
/posts/create
时,它与应该的情况完全没有问题。 但是在
/posts/new
中,我填写了一张表单,该表单将被重定向,这里是错误发生的地方

<%= form_tag({:action => :create}, :multipart => true) %> 
<fields to be filled in>
</form>
没有与[POST]“/posts/create”匹配的路由

您的
create
路线应为
post

改变

get 'posts/create'
get 'posts/create'

没有与[POST]“/posts/create”匹配的路由

您的
create
路线应为
post

改变

get 'posts/create'
get 'posts/create'


路由由HTTP谓词和路径标识。你的路线是

get 'posts/create'
  • HTTP动词
    GET
  • 路径
    发布/创建
默认情况下,表单有一个
POST
方法(HTTP动词),因此您应该从


路由由HTTP谓词和路径标识。你的路线是

get 'posts/create'
  • HTTP动词
    GET
  • 路径
    发布/创建
默认情况下,表单有一个
POST
方法(HTTP动词),因此您应该从


是的,上面的答案是正确的。这个问题可以结束了。另一种方法是将其添加到routes.rb中

资源:员额
这将为您提供脚手架资源的所有公共rails路由

是的,上述答案是正确的。这个问题可以结束了。另一种方法是将其添加到routes.rb中

资源:员额
这将为您提供脚手架资源的所有公共rails路由

哦,太简单了,我只是在监督这件事!谢谢!Rails很有趣,但有时…:Doh,这太简单了,我只是在监督这件事!谢谢!Rails很有趣,但有时…:为什么不遵循Rails惯例,自己定义所有路径?类似于
resources:posts,only:[:new,:create]
的功能完全符合您的需要。顺便说一句,您似乎遵循的是一个过时的教程。为什么不遵循Rails惯例,使用自己定义所有路径呢?类似于
resources:posts,only:[:new,:create]
的功能完全符合您的需要。顺便说一句,你似乎在遵循一个过时的教程。