Мне нужно перевести этот фрагмент 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?
В 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)
link_to_remote
...