0

我有一個工作顯示頁面,我只希望用戶簽名,如果用戶沒有登錄,我會向他顯示應用按鈕,當他們點擊按鈕時,他們會重定向到註冊頁面並在註冊後將他們重定向到工作展示頁面。我想知道我怎麼能做到這一點? 我正在考慮將工作分成2個模型工作細節和job_apply,並在job_apply控制器中放入這個before_action :authenticate_user!,但我想知道是否有其他解決方案?在rails中重定向用戶

回答

0

您不需要創建另一個操作。不要爲演出動作添加before_action :authenticate_user!

您需要爲apply操作添加before_action :authenticate_user!。一旦非登錄用戶點擊apply操作,他/她將被重定向到sign_in。

+0

應用只是在我的工作模型中的字符串字段 – userails 2014-11-02 23:09:24

+0

那麼,正確的流程是,你添加動作'apply'。並且保持原樣,因爲它對於來賓和登錄用戶都是一樣的。 – mohameddiaa27 2014-11-02 23:13:16

+0

所以你的想法是在作業控制器中添加一個應用操作?如果是的話,這個動作會是什麼? – userails 2014-11-02 23:16:46

0

我只是在應用程序控制器中使用了一個輔助方法。這段代碼顯然也需要一個current_user輔助方法。

def confirm_logged_in 
    if !current_user 
     redirect_to '/sessions/new' 
     flash[:login_failure] = 'You must be logged in to see this page' 
     session[:return_path] = request.original_url 
    end 
    end 

然後在你的會話控制器使用類似

redirect_to session[:return_path] || root_path