前提・実現したいこと
deviceを導入しており、TOPのルートパスを設定したいのですが、ログイン画面が出てきてしまいます。
以前はhomeコントローラーにTOPアクションを作ってうまくいっていたのですが、課題のrspecを通してみるとtopページが全く認識されてなかったので、課題ではusersコントローラーからtopに行けるようにしないといけないのかな?と思っています。(specの中にはuser.spec.rbとbook.spec.rbしかありませんでした。)
以下のやり方をしてもうまくルーティングできなかったのでご回答お願いいたします。
発生している問題・エラーメッセージ
エラー分はなし
deviceでルートパスを設定したが、ログイン画面が表示される。
エラーメッセージ
該当のソースコード
routes.rb
Rails.application.routes.draw do root 'users#top' get 'home/about' => 'users#about' devise_for :users, controllers: { sessions: 'users/sessions', registrations: 'users/registrations' } # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html resources :users, only: [:show, :index, :edit,:create,:update] resources :books, only: [:show, :index, :edit,:create,:update,:destroy] end
user controller.rb
class UsersController < ApplicationController before_action :correct_user, only: [:edit, :update] before_action :authenticate_user! def top end def about end def show @user = User.find(params[:id]) @book = Book.new @books = Book.where(user_id: @user.id) end def edit @user = User.find(params[:id]) end def index @user = User.find(current_user.id) @users = User.all @book = Book.new end def update @user = User.find(params[:id]) if @user.update(user_params) redirect_to user_path(@user.id),notice: "You have updated user successfully." else render :edit end end private def user_params params.require(:user).permit(:name, :introduction,:profile_image) end private def correct_user user = User.find(params[:id]) if current_user != user redirect_to root_path end end end
表示したいtop.html.erb
<div class="row"> <div class="col-md-8 col-md-offset-3 "> <h1>welcome to <span class="glyphicon glyphicon-book" aria-hidden="true"><strong>Bookers</strong> !!</spam></h1> <p>In<span class="glyphicon glyphicon-book" aria-hidden="true"><strong>Bookers</strong>,</span></p> <p>you can share and exchange your opinions , inpressions , and emotions</p> <p>about various books!</p> <div class="row ml"> <div class="col-md-8 "> <%= link_to "log in", new_user_session_path, class: "btn btn-default btn-info btn-md btn-block top-btn", 'aria-hidden' => true %> <%= link_to "sign up", new_user_registration_path, class: "btn btn-default btn-success btn-md btn-block top-btn", 'aria-hidden' => true %> </div> </div> </div>
試したこと
上記root設定
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/08 05:48