

以下のようにログイン認証を実装したいのですが、ユーザー名とパスワードを入れログインボタンを押すと、以下のようなエラーが表示されてしまいます。解決策を教えて下さい。

[code]

    No route matches [POST] "/"
    
[/code]

~routes.rb~

[code]

    Rails.application.routes.draw do
      get 'sessions/new'
      get 'users/show'
      get 'users/index'
      root :to => "sessions#index"
    end
    
[/code]

~views/sessions/new.html.rb~

[code]

    <h1>Log in</h1><%= form_tag  do %>
    <div class="field"><%= label_tag :name, 'login name' %>
      <%= text_field_tag :name, params[:name] %>
    </div><div class="field"><%= label_tag :pass, 'password' %>
      <%= password_field_tag :pass , params[:pass]%>
    </div><div class="actions"><%= submit_tag "ログイン" %>
    </div><% end %>
    
[/code]

~sessions_controller.rb~

[code]

    class SessionsController < ApplicationController
      def new
      end
    
        def index
            render "new"
        end
    
        def create
          user = User.find_by_name params[:name]
          if user && user.authenticate(params[:pass])
            session[:user_id] = user.id
            redirect_to "users/index"
          else
            flash.now.alert = "Invalid"
            render "new"
          end
         end
    
        def destroy
          session[:user_id] = nil
          redirect_to "/users/index"
        end
    end
    
[/code]


CC BY-SA 3.0
2016-01-25T23:40:28.940
21310
2016-04-25T01:47:15.900
2016-01-26T00:38:53.963
76
13587
question
ruby-on-rails
No route matches [POST] "/" のエラーが出る


"/" に対する POST を定義するには、config/routes.rb に

[code]

    post "/" => "sessions#index"
    
[/code]

と記載してください。

ルーティングは `rake routes` で確認できます。


CC BY-SA 3.0
2016-01-26T00:37:31.743
21311
2016-01-26T00:37:31.743
76
21310
answer