что меня интересует, так это реализация базовой версии инструмента предварительного просмотра ссылок в JQuery и RoR (аналогично тому, что есть у Facebook). Пользователь вводит URL-адрес в поле ввода. Функция jquery отслеживает, что вводится (используя keyup), и когда вводится действительный URL-адрес (без отправки пользователем чего-либо), функция jquery вызывает функцию rails, которая использует гем Nokogiri для поиска и возврата содержимого предварительного просмотра (например, заголовок , любые изображения и т. д.). Затем это содержимое возвращается функции jquery и отображается под полем ввода.
Что мне непонятно во всем этом, так это то, как данные передаются из функции jquery в рельсы и обратно.
Чтобы конкретизировать ситуацию, предположим, что я просто хочу получить заголовок введенного URL-адреса.
В моей функции JQuery я использую keyup для отслеживания таких вещей, как пробелы, возвраты и т. Д. На данный момент я не проверяю введенный URL-адрес (я могу сделать это позже)
var text;
$("#text").keyup(function(e) {
if(e.which == 13 || e.which == 32 || e.which == 17 || ) {
text = $("text").val();
$.get('/linkPreview', {text: text}, function(answer) {
$("previewTitle").html(answer);
}
)
}
Вот тут я не уверен, как поступить. Я использую метод .get Jquery (правильно ли это?) для вызова функции rails и передачи текста в качестве введенного URL-адреса.
Затем я сопоставляю '/linkPreview' с действием linkPreview в моем контроллере страниц, в моем файле маршрутов:
match '/linkPreview', :to => 'pages#linkPreview'
Я также не уверен в чтении и передаче данных JSON в функции rails. Я пытаюсь использовать функции response_to и response_with, но не уверен, что это правильно (я использую гем Nokogiri для извлечения заголовка из html-адреса):
def linkPreview
respond_to :json
@url = params[:text]
doc = Nokogiri::HTML(open(@url))
@title = doc.css(title)
respond_with(@title)
end
Поскольку я новичок в RoR и JQuery, я был бы очень признателен за любую помощь в отношении правильного способа вызова функции rails из JQuery, передачи данных JSON от одного к другому и любых других ресурсов, которые я рассматриваю по этим темам! Мне также было интересно, есть ли какой-либо рекомендуемый способ отладки ошибочного сценария (мой код явно не работает, но я не уверен, с чего начать поиск ошибок).
Благодаря тонну!