действие jQuery в Rails

1

Мне нужно перевести этот фрагмент Prototype в jQuery:

div id="do_bookmark" <%= style_for_do_bookmark @gigapan %> >
    <%= link_to_remote "Add to Favorites",
        :url => { :controller => "bookmarks", 
                  :action => "create", 
                  :user_id => current_app_user.id, 
                  :bookmarked_type => @photo.class.to_s, 
                  :bookmarked_id => @photo.id },
        :method => 'post'
    %>
</div>

Каким будет лучший способ сделать это, чтобы захватить контроллер, действие и т.д. В URL?

  • 1
    Вы пытаетесь сделать это на рельсах 3? потому что там нет link_to_remote ...

1 ответ

3
Лучший ответ

В Rails 3 вы можете сделать это

<%=
  link_to 'add to favorites',{
    :controller=> 'bookmarks',
    :action => 'create',
    :user_id => current_app_user.id,
    :bookmarked_type  => @photo.class.to_s,
    :bookmarked_id => @photo.id
  },
  :remote=>true
%>

и это сделает удаленный доступ для вас.

но если вы хотите сделать это с помощью jQuery вы можете сделать такую функцию:

function addToFavorites(photoId,photoClass){
  $.ajax({
    url:"<%=
       url_for(
         :controller=> 'bookmarks',
         :action => 'create',
         :user_id => current_app_user.id
       )%>",
       data: "bookmarked_id="+photoId+"&bookmarked_type="+photoClass,
       dataType: "script"
  });
}

и вы можете вызвать функцию из ссылки

<a href="#" onclick="addToFavorites(<%[email protected]%>,<%[email protected]%>); return false">
  Add To Favorites
</a>

Дополнительная документация:

http://api.jquery.com/jQuery.ajax/ (jQuery Ajax())

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html (помощники URL-адресов Rails)

  • 0
    ), в строке 8 addToFoving, похоже, выдается ошибка. Я использую Rails 2. Изменится ли синтаксис функции?
  • 0
    @ansible только что обновил ответ, не закрыл тег rails там, где он должен быть закрыт.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню