を呼び出すことができ:それはページそのもので実行する必要がありauthenticate_adminRailsはページにadminを認証 - しかし、jQueryのは、私はLanguagesControllerにプライベートメソッドを追加したい
は唯一の方法はありますが、jQueryの呼び出しが行われた場合そのコントローラーに許可されていますか?
今私は
before_action :authenticate_admin
private
def authenticate_admin
if current_user.role_id != 1
redirect_to home_path
end
end
を持っていますが、サインアップし、ユーザーのダッシュボード上の言語のドロップダウンリストがあります。だから、プロファイルでは、そこJS:
var getLanguages = $.get('/languages.json', function(languages){
lang = languages
var langConfirmSource = $('#language-confirmation-template').html();
var langConfirmCompiled = Handlebars.compile(langConfirmSource);
var langConfirmTemplate = langConfirmCompiled(languages)
$('body').append(langConfirmTemplate)
});
それが唯一のページに管理者を保護しますが、呼び出されたときにjQueryは、それがことだやらせるように設定する正しい方法は何ですか?
私はコントローラーを呼び出すことができますが、問題は関連するページが必要であり、そのページにすべてのユーザーがアクセスできることです。私は、もし誰かが/言語に行き、管理者ではないと言う別の方法があるのだろうかと疑問に思っています。たとえそれが許可されていても、それは何ですか? – gwalshington
あなたはページを持っている必要はなく、例えばJSONオブジェクトでも反応することを知っていますか?これはAPIを作成するのに便利です。あなたのリクエストは、 'view'またはJSONオブジェクトを返すことができます。 あなたが望むものは可能です。ユーザーをテストし、管理者でない場合はJSONを返すだけです。そうするために、before_action:authenticate_adminを削除してコントローラコールでテストすることができます(他の方法も考えられますが、これはもっと単純です)。しかし、それは推奨されていませんので、特定のルートを作成することを検討してください。 –