这让我非常震惊,而且还有很多事情需要我在这里寻求帮助。将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