前提・実現したいこと
rails6にdeviseを導入しています。ルートを追記したらリンクから目的のページに行かなくなりました。
どこを変更したらいいか教えていただきたいです。
・本来のリンク
薬物サイトリンク→トップページ
ログインシンク→ログインページ
サインアップ→サインアップページ
アバウトリンク→アバウトページ
・おかしくなっているリンク
薬物サイト→ログインページ
ログインページ→ログインページ
サインアップ→サインアップページ
アバウトページ→アバウトページ
URLはあっているのに画面が違うという現象になっています。
該当のソースコード
ruby
1Rails.application.routes.draw do 2 devise_for :users, :controllers => { 3 :registrations => 'users/registrations', 4 :sessions => 'users/sessions' 5 } 6 7 get "/posts/top", to: "posts#top" 8 get "/posts/about", to: "posts#about" 9 get "/posts/index", to: "posts#index" 10 get "/posts/dashboard", to: "posts#dashboard" 11 get "/posts/lessons", to: "posts#lessons" 12 get "/posts/profile", to: "posts#profile" 13 get "/posts/setting", to: "posts#setting" 14 get "/posts/answer", to: "posts#answer" 15 root 'posts#top' 16 17 18 # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html 19end 20
ruby
1#application controller 2class ApplicationController < ActionController::Base 3 protect_from_forgery with: :exception 4 before_action :configure_permitted_parameters, if: :devise_controller? 5 before_action :authenticate_user! 6 7 protected 8 9 def configure_permitted_parameters 10 devise_parameter_sanitizer.permit(:sign_up, keys: [:name]) 11 end 12 13 def after_sign_in_path_for(resource) 14 posts_dashboard_path # ログイン後に遷移するpathを設定 15 end 16 17 def after_sign_out_path_for(resource) 18 posts_top_path # ログアウト後に遷移するpathを設定 19 end 20end 21
ruby
1#post controller 2class PostsController < ApplicationController 3 def top 4 end 5 6 def index 7 end 8 9 def about 10 end 11 12 def dashboard 13 end 14 15 def lessons 16 end 17 18 def profile 19 end 20 21 def setting 22 end 23 24 def answer 25 end 26 27end 28
html
1 <li class="nav-item"> 2 <%= link_to "LOGOUT", destroy_user_session_path, method: :delete %> <!-- ログアウトをする --> 3 </li> 4 <li class="nav-item"> 5 <%= link_to "ABOUT", "/posts/about" %> 6 </li> 7 <li class="nav-item"> 8 <%= link_to "DASHBOARD", "/posts/dashboard" %> 9 </li> 10 <li class="nav-item"> 11 <%= link_to "LESSONS", "/posts/lessons" %> 12 </li> 13 <li class="nav-item"> 14 <%= link_to "PROFILE", "/posts/profile" %> 15 </li> 16 <li class="nav-item"> 17 <%= link_to "SETTING", edit_user_registration_path %> <!-- ログアウトをする --> 18 </li> 19 <% else %> 20 <!-- ユーザーがログインしていなかった時の処理 --> 21 <li class="nav-item"> 22 <%= link_to "LOGIN", new_user_session_path, class: 'post' %> <!-- ログイン画面に移行する --> 23 </li> 24 <li class="nav-item"> 25 <%= link_to "SIGNUP", new_user_registration_path, class: 'post' %> <!-- 新規登録画面に移行する --> 26 </li> 27 <li class="nav-item"> 28 <%= link_to "ABOUT", "/posts/about" %> 29 </li>
試したこと
もともとルートのdevise_for :users, :controllersが一番下にかかれていたので、一番上に書き直しましたがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
deviseのコントローラーには手を加えていません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/11 03:05
2020/05/11 03:11
2020/05/11 03:12
2020/05/11 03:14
2020/05/11 03:26
2020/05/11 04:01
2020/05/11 04:03
2020/05/11 06:50
2020/05/11 07:23
2020/05/11 07:36
2020/05/11 12:58
2020/05/12 02:51
2020/05/12 02:54
2020/05/12 03:10
2020/05/12 03:24
2020/05/12 05:54