没有路由匹配 [POST] "/manager"

No route matches [POST] "/manager"

我在 Rails 中的第一个应用程序出现错误,希望有人能帮助我并提供一些线索,告诉我如何处理这个问题。

错误:

No route matches [POST] "/manager"

当我提交此表单时:

登录

<div class="row">
  <div class="span6 offset3">
    <%= form_for(:session, url: manager_path) do |f| %>

      <%= f.label :name %>
      <%= f.text_field :name %>

      <%= f.label :password %>
      <%= f.password_field :password %>

      <%= f.submit "Sign in", class: "btn btn-large btn-primary" %>
    <% end %>
  </div>
</div>

我的 route.rb 文件是:

 Rails.application.routes.draw do
      resources :users
      resources :sessions, only: [:new, :create, :destroy]
      root 'static_pages#home'
      match '/manager', to: 'static_pages#manager',    via: 'get'
      match '/signin',  to: 'sessions#new',            via: 'get'
      match '/signout', to: 'sessions#destroy',        via: 'delete'
end

我的session_controller.rb是:

class SessionsController < ApplicationController
  def new
  end

  def create
    user = User.find_by(name: params[:session][:name])
    if user && user.authenticate(params[:session][:password])
      sign_in user
      redirect_to user
      # Sign the user in and redirect to the user's show page.
    else
      flash.now[:error] = 'Invalid email/password combination'
      redirect 'new'
    end
  end

  def destroy
  end
end

Ruby 版本:2.1.5,Rails v. 4.2.4

谢谢

改为POST方法

Rails.application.routes.draw do
  resources :users
  resources :sessions, only: [:new, :create, :destroy]
  root 'static_pages#home'
  match '/manager', to: 'static_pages#manager',    via: 'post'
  match '/signin',  to: 'sessions#new',            via: 'get'
  match '/signout', to: 'sessions#destroy',        via: 'delete'
end

manager 方法添加到 StaticPagesController

class StaticPagesController < ApplicationController

  def manager
     # Create logic goes here 
  end

end
 Rails.application.routes.draw do
  resources :users
  resources :sessions, only: [:new, :create, :destroy]
  root 'static_pages#home'
  match '/manager', to: 'static_pages#manager',    via: 'get'
  match '/manager', to: 'sessions#create',         via: 'post'
  match '/signin',  to: 'sessions#new',            via: 'get'
  match '/signout', to: 'sessions#destroy',        via: 'delete'
end

现在方法将可用于 /manager post,它将转到会话控制器创建方法

检查这条路线

match '/manager', to: 'sessions#create', via: 'post'

这个方法说。路由名称是 /managers 控制器是 sessions 来自 sessions#create 并且 create 是来自 sessions#create 的控制器会话方法。