1

このようなURLがあります

example.com/users/1376

ユーザーがサインインしていなくても、誰でもこのページを見ることができます。

こんなURLもあります

example.com/users/1376?mode=1

サインインしたユーザーのみがこのページを表示できます。それ以外の場合、ユーザーはサインイン ページ (new_users_session_path) にリダイレクトされます。

このようなものでしょうか?

before_filter :authenticate_user!, :only => [:show(params[:mode]=1)] 

そうでない場合は、これを解決する方法を教えてください。

ありがとう

4

2 に答える 2

1

レール用 3.2

before_filter :redirect_user, :only => :show

レール4用

before_action :redirect_user, :only => :show

def redirect_user          
 if params[:mode] == 1 && current_user      
  redirect_to user_path(id: params[:id], mode: 1) #example.com/users/1376?mode=1
 elsif !current_user && params[:mode].blank?
   redirect_to user_path(id: params[:id]) 
 else  
  redirect_to new_users_session_path
 end     
end  
于 2013-08-08T04:27:25.760 に答える