首页 > 解决方案 > 没有路由匹配 [POST] "/session.account"

问题描述

嘿,当我尝试使用 Devise 和 Simple_Form 登录时,我遇到了一个问题,它将我http://localhost:3000/account/sign_in重定向到http://localhost:3000/session.account弹出错误的位置:没有路由匹配 [POST]“/session.account”。知道为什么吗?以及如何让它恢复工作?

路线.rb

Rails.application.routes.draw do

  get 'tasks/completed', to: 'tasks#completed'
  get 'tasks/pending', to: 'tasks#pending'

  namespace :settings do
  resources :tags
  resources :categories
  end
  resources :settings
  resources :tasks

  devise_for :account

  devise_scope :account do
    get 'removal', to: 'devise/registrations#cancel'
  end

  devise_scope :user do
    delete 'session', to: 'devise/sessions#destroy'
  end

  root to: 'dashboards#index'
end

耙路线

                              removal GET    /removal(.:format)                                                                       devise/registrations#cancel
                              session DELETE /session(.:format)                                                                       devise/sessions#destroy
                  new_account_session GET    /account/sign_in(.:format)                                                               devise/sessions#new
                      account_session POST   /account/sign_in(.:format)                                                               devise/sessions#create
              destroy_account_session DELETE /account/sign_out(.:format)                                                              devise/sessions#destroy
                 new_account_password GET    /account/password/new(.:format)                                                          devise/passwords#new
                edit_account_password GET    /account/password/edit(.:format)                                                         devise/passwords#edit
                     account_password PATCH  /account/password(.:format)                                                              devise/passwords#update
                                      PUT    /account/password(.:format)                                                              devise/passwords#update
                                      POST   /account/password(.:format)                                                              devise/passwords#create
          cancel_account_registration GET    /account/cancel(.:format)                                                                devise/registrations#cancel
             new_account_registration GET    /account/sign_up(.:format)                                                               devise/registrations#new
            edit_account_registration GET    /account/edit(.:format)                                                                  devise/registrations#edit
                 account_registration PATCH  /account(.:format)                                                                       devise/registrations#update
                                      PUT    /account(.:format)                                                                       devise/registrations#update
                                      DELETE /account(.:format)                                                                       devise/registrations#destroy
                                      POST   /account(.:format)                                                                       devise/registrations#create   root GET    /                                                                                        

意见/设计/会话/新

<h2>Log in</h2>

<%= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>

  <div class="form-inputs">
    <%= f.input :email,
                required: false,
                autofocus: true,
                input_html: { autocomplete: "email" } %>
    <%= f.input :password,
                required: false,
                input_html: { autocomplete: "current-password" } %>
    <%= f.input :remember_me, as: :boolean if devise_mapping.rememberable? %>
  </div>

  <div class="form-actions">
    <%= f.button :submit, "Log in" %>
  </div>
<% end %>

<%= render "devise/shared/links" %>

标签: ruby-on-railsrubyruby-on-rails-5

解决方案


好的问题在url: session_path(resource_name))我更改为时已解决,url: new_session_path(resource_name))并且一切正常。


推荐阅读