管理者以外のユーザーが他のユーザーのプロファイルを更新しようとした場合に、ルート パスにリダイレクトするコントローラーbefore_filterがあります。
before_filter :correct_user, only: [:edit, :update]
....
private
def correct_user
@user=User.find(params[:id])
redirect_to(root_path) unless current_user?(@user) || current_user.admin?
end
このフィルターを 2 つの異なるコントローラーで使用しており、コードをDRYしたいと考えています。
メソッドをapplication_helper.rbに移動しても仕様はパスし@user
ますが、ヘルパー ファイルで変数を割り当てるのにうんざりしています。これにより害が生じる可能性はありますか?少なくとも変数の割り当てをヘルパーのプライベート メソッドに委任する必要がありますか?
この場合、コードを複製した方がよいでしょうか?それとも、私のソリューションは十分に安全でしょうか?