前提・実現したいこと
初めて質問させていただきます。
非エンジニアで、最近railsの勉強を始め、ruby on rails5.2.1/ruby2.4.4/herokuで簡単なSNSを作ってみようと思いコードを書いておりました。
ここに質問の内容を詳しく書いてください。
上記開発中に、ログイン/ログアウト機能を実装しようと思い、開発環境で試してうまくいったので、herokuでデプロイしたところ、TOPのヘッダー上ログインボタンからログイン→トップにリダイレクト後、ヘッダー上のログアウトボタンをクリックで"The page you were looking for doesn't exist"と表示され、ログは以下のようになっていました。
素人目なので間違っているかもしれませんが、トップからのログアウトボタンをlink_toでmethod: :postとしているのですが、なぜかログ上でGETになっている
ことが原因だと考えています。
すごく初歩的なことをお伺いしているかもしれませんが、どうしたらいいか検索してもわからず困っており、ご助力いただけますと幸いです。。。
ログ
2018-09-14T03:19:30.344238+00:00 heroku[router]: at=info method=GET path="/users/logout" host=benchmark002.herokuapp.com request_id=42249d0c-95-4ac2-9589-4d6040c576 fwd="111.239.181" dyno=web.1 connect=1ms service=3ms status=404 bytes=1902 protocol=https
エラーメッセージ
The page you were looking for doesn't exist
該当のソースコード
ruby
1#ファイル名:/app\views\layouts\application.html.erb 2 <li> 3 <%= link_to("ログアウト", "/users/logout", method: :post) %> 4 </li> 5 6config\routes.rb 7 post "users/create" =>"users#create" 8 get 'users/index' => "users#index" 9 get "users/login" => "users#login_form" 10 get "users/new" => "users#new" 11 post "users/login" => "users#login" 12 post "users/logout" => "users#logout" 13 14 15#ファイル名:app\controllers\users_controller.rb 16def login 17 @user = User.find_by(email: params[:email], password: params[:password]) 18 if @user 19 session[:user_id] = @user.id 20 redirect_to ("/") 21 flash[:notice] = "ログインしました" 22 else 23 @error_message = "メールアドレスまたはパスワードが間違っています" 24 @email = params[:email] 25 @password = params[:password] 26 end 27 end 28 29#ファイル名:app\controllers\users_controller.rb 30def logout 31 session[:user_id] = nil 32 flash[:notice] = "ログアウトしました" 33 redirect_to ("/") 34end 35 36 37 38def create 39 @user = User.new(name: params[:name], email: params[:email], password: params[:password]) 40 if @user.save 41 session[:user_id] = @user.id 42 redirect_to ("/") 43 else 44 render action: :new 45 end 46end 47 48
あなたの回答
tips
プレビュー