2011-07-29 175 views
1

当生成帖子列表时,我希望登录的用户能够点击明星来收藏该帖子。有关如何通过ajax做到这一点的任何建议?我想我会用这个many_to_many关系,但只是不确定在rails上发布超过ajax。ruby​​ on rails ajax fav按钮的帖子

+0

你使用导轨2或3? –

+0

使用rails 3 --- – stewart715

回答

2

首先:你的协会可以是具有连接表更明确,像UserFavourites(USER_ID,POST_ID),然后执行:

# user.rb 
has_many :user_favourites 
has_many :favourites, :through => :user_favourites, :class_name => "Post" 

然后在你的观点,你可以创建一个收藏夹链接(明星形象)并假设该链接的ID为favourite。然后,你可以使用jQuery(或其他),并做:

$("#favourite").click(function() { 
    $.ajax({ 
     url: "https://stackoverflow.com/users/add_favourite", 
     data: {some_data_you_may_want_to_send: the_data}, 
     success: function(html){ 
      //do something here if you want 
     } 
    }); 
}); 

这就需要用户的一些控制器动作称为add_favourite,你可以把它返回一些HTML或返回任何结果,只是添加的收藏给用户。

+0

是不是更好地返回json或某种真/假反馈? –

+0

是的,这是由OP决定的。这取决于他想要什么。我会同意某种真实/错误的反馈将是理想的情况下出了问题。 – MrDanA

+0

你们能给我一些T/F反馈的帮助吗?我真的很陌生,非常感谢你的帮助! – stewart715