Ruby on rails 没有与[POST]“/sessions/new”匹配的路由(rails 4正在运行)

Ruby on rails 没有与[POST]“/sessions/new”匹配的路由(rails 4正在运行),ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我遵循《Rails 4 In action book》中的操作手册,遇到以下错误: No route matches [POST] "/sessions/new" 我不知道为什么,因为我已经跟随教程到了一个T。这让我相信教程本身是有缺陷的。无论如何,由于某种原因,它在发布到sessionsnew时应该发布到sessionscreate。我做错了什么 会话\u controller.rb 你是对的,这本书有一处错误 当你有一个标签的表格 <%= form_for :signin, met

我遵循《Rails 4 In action book》中的操作手册,遇到以下错误:

No route matches [POST] "/sessions/new" 
我不知道为什么,因为我已经跟随教程到了一个T。这让我相信教程本身是有缺陷的。无论如何,由于某种原因,它在发布到sessionsnew时应该发布到sessionscreate。我做错了什么

会话\u controller.rb


你是对的,这本书有一处错误

当你有一个标签的表格

<%= form_for :signin, method: "POST" do |f| %>
显然,这不一定是您想要的,因为您没有/sessions/new for post-HTTP动词,我认为最简单的解决方案是指定路由

post "/signin", to: "sessions#create", as: "signin"
以你的形式!

<%= form_for signin_path do |f| %>

你是对的,这本书有一处错误

当你有一个标签的表格

<%= form_for :signin, method: "POST" do |f| %>
显然,这不一定是您想要的,因为您没有/sessions/new for post-HTTP动词,我认为最简单的解决方案是指定路由

post "/signin", to: "sessions#create", as: "signin"
以你的形式!

<%= form_for signin_path do |f| %>

您需要指定的表单是POST方法-默认情况下它们是POST的,我会尝试删除它。其次,通常您只需编写method::post而不是post。注意:这也许能解决问题,也可能不能解决问题,但值得一试。第三,sign和/sign之间有着天壤之别-试试LatterThank@TarynEast,不幸的是,尽管上述所有方法都不能解决问题。好的,那么下一步-你是在一个窗口中运行你的服务器,对吗?单击“登录”按钮,并向我们显示单击后登录到该窗口的内容。此外,在浏览器中,右键单击并检查表单,查看表单的实际html呈现内容。您应该指定表单是POST方法-默认情况下它们是POST我会尝试删除它。其次,通常您只需编写method::post而不是post。注意:这也许能解决问题,也可能不能解决问题,但值得一试。第三,sign和/sign之间有着天壤之别-试试LatterThank@TarynEast,不幸的是,尽管上述所有方法都不能解决问题。好的,那么下一步-你是在一个窗口中运行你的服务器,对吗?单击“登录”按钮,并准确显示单击后登录到该窗口的内容。此外,在浏览器中,右键单击并检查表单,查看表单的实际html呈现
<%= form_for signin_path do |f| %>