這讓我非常震驚,而且還有很多事情需要我在這裏尋求幫助。將AJAX'添加到收藏夾'添加到此控制器?
現在,我有一個資源列表。在每個資源內部,通過單擊鏈接,可以讓某人「將其添加爲最愛」。我有正常的重定向工作,但作爲整合AJAX,使他們能夠不喜愛的頁面清爽,我完全失去了...
- 現在我有它,因爲它似乎是一個CRUD「把」行動'更新'
FavoritesController(更新在該控制器的唯一操作)
def update
@favorite = Favorite.find_or_initialize_by_resource_id_and_user_id(params[:id], current_user.id)
if @favorite.persisted?
@favorite.destroy
else
if @favorite.valid?
@favorite.save
end
end
redirect_to root_url
end
我的觀點:
<%= link_to "", favorites_path(:id => resource.id), :class => "star#{star_post?(resource)}", :method => "put" %>
條
我的路線:
resource :favorites, :only => [:update]
我的JS:
$('.res-list .star').click(function(){
$.put('/favorites/?id=' + $(this).attr('data-id'));
return false;
});
謝謝,我想我有一些。我需要用respond_to來更新我的控制器嗎? – Tallboy
不,你的默認HTML格式將會很好。你的控制器將重定向到將會呈現頁面的根網址,但AJAX忽略所有這些。如果你想避免網絡衝擊,我想你可以有不同的'respond_to | format |'。 – Ron
感謝您的幫助:)如果您不介意,我有一些超級簡要說明。我相信你的第二種方法。到目前爲止,我設置了一個JS功能,它捕獲收藏夾鏈接上的點擊事件。裏面,我有'$ .put('/ favorites /')'但我如何傳入當前ID?我會不得不使用類似於數據屬性的東西,讀取它並將其插入到請求中? – Tallboy