Применить link_to_remote из обработчика jQuery в Rails
У меня есть игра с 5 ящиками, и когда я щелкаю по ящику, я хочу отправить ajax-запрос контроллеру, который по сути точно такой же, как link_to_remote. Мне нужно отправить хэш информации в определение в контроллере, но мне ничего не нужно отправлять обратно или даже обновлять.
Следующий беспорядок в jQuery/js делает функцию, которая либо корректна, либо неверна. Из этих функций я хочу иметь возможность отправить запрос ajax на некоторый контроллер с хешем информации.
$('#tones a').click(function(e) {
if (playGame) {
id = this.id.replace('t', '')
if (correctCharacter[1] == id) {
correct();
} else {
incorrect();
}
addCharacters();
}
});
})
Я знаю, что link_to_remote имеет следующий синтаксис, и эта ссылка на самом деле не связана вообще:
# Generates: <a href="#" onclick="new Ajax.Updater('posts', '/blog/destroy/3', {asynchronous:true, evalScripts:true});
link_to_remote "Delete this post", :update => "posts", :url => { :action => "destroy", :id => post.id }
Если бы вы могли показать мне, как заставить эту ссылку работать в последней функции. Мне просто нужна одна ссылка ajax или запросить что-нибудь правильное, которое идет к контроллеру и отправляет хэш информации.
Я хочу поместить это в следующий блок. Если это правильно, то это сработает, а если это не так, то сработает.
if (correctCharacter[1] == id) {
correct();
} else {
incorrect();
}
Вот js-источник из link_to_remote, который я разместил на странице только для того, чтобы посмотреть на безопасность. Это на самом деле не связано с тем, где я хочу разместить информацию, но связано с моим конкретным приложением.
<a href="#" onclick="new Ajax.Updater('posts', '/groups/new', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('jQx+jlICHcZ3X6SPOcNUNBPJF8qLGDarO/nasHfWkvQ=')}); return false;">Test</a>
1 ответ
Это то, что я придумал. Он работает, за исключением того, что не публикует правильный URL.
$.ajax({
type: "POST",
url: "analytics/test",
data: 'correct=' + correct_or_incorrect + '&id=' + correctCharacter[3] + "'"
});