Rails路由错误 - 非常困惑

时间:2017-01-28 17:33:07

标签: ruby-on-rails ruby

所以目前我正在关注Ruby on Rails的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>

有人知道吗?

我的路由错误如下所示:

No route matches [POST] "/posts/create"

3 个答案:

答案 0 :(得分:2)

  

没有路线匹配[POST]“/ posts / create”

create的路线应为post

类型

更改

get 'posts/create'

post 'posts/create'

答案 1 :(得分:0)

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

get 'posts/create'
  • HTTP动词GET
  • 路径posts/create

默认情况下,表单有一个POST方法(HTTP谓词),所以你应该改变你的路线

get 'posts/create'

post 'posts/create'

答案 2 :(得分:0)

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

资源:帖子 这将为您提供脚手架资源的所有公共铁路路线。