2016-12-27 28 views
0

我目前遇到的問題記錄在時重定向到用戶的個人資料頁第二根是建立根頁面重定向到登錄的用戶的個人資料頁。我的根頁面是一個簡單的登錄頁面,包含登錄或註冊鏈接。我不希望該頁面在登錄後無法訪問,因爲它毫無意義地去了那裏。不使用設計

這是我GitHub repo這個項目,如果你需要更多的上下文或如果我沒有提供的東西,你將需要。

我要去嘗試做的是增加一個before_actionSessionsController

before_action :user_authenticated, only: [:new] 

def user_authenticated 
    @user = User.find_by(email: params[:session][:email].downcase) 
    if logged_in? 
    redirect_to @user 
    end 
end 

而第二根以上的routes.rb文件中的第一個。

root to: 'sessions#new' 

Error

我不能確切地弄清楚什麼是錯行,如果我刪除它,我只是得到另一個錯誤。我假設那條線上的東西沒有價值,或者它不知道某件事。我覺得這應該是一個很重要的問題,但我不斷收到掛斷了電話就可以了。

這裏是我的sessions_controller.rb &的routes.rb文件如何目前無碼

# sessions_controller.rb 
class SessionsController < ApplicationController 

    def new 
    end 

    def create 
    @user = User.find_by(email: params[:session][:email].downcase) 
    if @user && @user.authenticate(params[:session][:password]) 
     log_in @user 
     params[:session][:remember_me] == '1' ? remember(@user) : forget(@user) 
     redirect_to @user 
    else 
     flash.now[:danger] = 'Invalid email/password combination' 
     render 'new' 
    end 
    end 

    def destroy 
    log_out if logged_in? 
    redirect_to root_url 
    end 
end 

# routes.rb 
Rails.application.routes.draw do 
    root 'static_pages#home' 
    get '/signup', to: 'users#new' 
    post '/signup', to: 'users#create' 
    get '/login', to: 'sessions#new' 
    post '/login', to: 'sessions#create' 
    delete '/logout', to: 'sessions#destroy' 
    resources :users 
end 

好像你可以使用約束還有那些片段,但我無法得到它的工作。似乎有使用設計時萬噸的答案,但我覺得這將是有點兒奇怪,在設計中添加只是重定向到他們的個人資料。

這是一個stackoverflow答案我看着可能是相關的,但沒有太多的運氣。

Specify a different root path for logged in users without using Devise

+0

你下面的任何教程? – Hizqeel

+1

@Hizqeel我已經通過一對夫婦去Rails的書籍,但從來沒有真正做我自己的東西。大部分放在這裏的登錄代碼如下邁克爾·哈特爾在Ruby on Rails的教程書。 –

+1

我得到的是..你不想在登錄後看到並訪問登陸頁面(帶有鏈接登錄和註冊),但只有用戶配置文件頁面 在'static_pages_controller.rb'中嘗試**' def home如果logged_in? redirect_to current_user end end ** ** – Hizqeel

回答

3

在你static_pages_controller.rb文件只需添加:

def home 
if logged_in? 
    redirect_to current_user 
end 
end