没有路由匹配 [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
的控制器会话方法。
我在 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
的控制器会话方法。