Я пытаюсь изменить гиперссылку на ссылку ajax. Таким образом, я могу связываться с внешней целью при обновлении данных модели, не отправляя пользователя в пользовательское действие контроллера для обработки публикации / перенаправления.
Мое приложение представляет собой базовую галерею изображений, каждое изображение ссылается на внешний веб-сайт:
Вот мой частичный _pictures.html.erb:
<% @galleries.each do |g| %>
<% for image in g.images %>
<div id="picture">
<%= render 'top_nav'%>
<%= link_to g.source, :target => true do %>
<%= image_tag image.file_url(:preview) %>
<% end %>
<%= will_paginate(@galleries, :next_label => "Forward", :previous_label => "Previous") %>
</div>
<br />
<div class="image_description">
<h2>
<%= g.title %>,
<span class="time">
<%= distance_of_time_in_words(g.created_at, Time.now, include_seconds = false)%> ago
</span>
</h2>
</div>
<% end %>
<% end %>
Который отображается на моем index.html.erb:
<h1>Share and click images to unlock more...</h1>
<div id="galleries">
<%= render 'pictures' %>
</div>
Полагаю, мне удалось изменить ссылку на ссылку ajax с помощью следующего в application.js:
$(function() {
$("#picture a").live("click", function() {
return false;
});
});
Поскольку link_to не работает (что я и ожидал). Теперь я пытаюсь написать обработчик (не уверен, что это правильное слово) в index.js.erb, я знаю, что это неправильно, но я собрал воедино:
$("#picture").html.("<%= escape_javascript(render)("pictures")) %>")
Как мне вернуть эту ссылку в рабочее состояние, но с помощью javascript? И если бы я хотел сделать ajax-вызов метода модели, с чего бы мне начать писать этот код в application.js или index.js.erb?
Обязательный защитный механизм: я сосу на javascript.