2017-12-07 14 views
0

私はインデックスビューにアクセスする前に "can_accede"(これは私のaplication_controllerにあります)というアクションを実行する前のアクションを使用しています。このアクションは、ユーザーが自分のインデックスにアクセスできるかどうかを確認するレコードを探しますどのようなレコードを探すかを知るには、そのアクションにパラメータを送る必要があります。before_actionを介してパラメータを送信

これが私の "can_accede" アクション

def can_accede 
    @can_accede = current_usuario.try(:perfiles).find_by_Descripcion(params[:Module_name]).try(:Listar) 
    if @can_accede != true 
    redirect_to root_path, alert: "you don't have permission." 
    end 
end 

である、これは私のbefore_actionです:

before_action :can_accede, only: [:index] 

parameter param [: Module_name] before_actionを通じて行動can_accedeに送信することは可能でしょうか?

+1

あなたは 'controller_name'と' action_name'メソッドにアクセスできます - あなたは 'Module'を指定するparams(またはコンビネーション)に渡そうとしているもののどちらですか? – SRack

+0

can_accedeメソッドでtryを使用することはお勧めしません。なぜなら、current_usuarioが関連付けによって必要なオブジェクトを取得しなかった場合、またはnilである場合、未定義メソッドfind_by_Descripcion for nilクラスとしてエラーが発生するからです。 。 –

答えて

0

paramsオブジェクトはこのメソッドで使用できるため、にparams[:whatever]と呼ぶことができます。

FWIWの場合、認証方法を統一するための認可宝箱を調べる必要があります。 PunditCanCanCanは良い選択肢です。

関連する問題