【发布时间】:2011-07-29 15:03:48
【问题描述】:
生成帖子列表时,我希望登录用户能够单击星号来收藏该帖子。关于如何通过ajax做到这一点的任何建议?我想我会为此使用 many_to_many 关系,但只是不确定是否在 Rails 中通过 ajax 发布。
【问题讨论】:
标签: jquery ruby-on-rails ruby ajax ruby-on-rails-3
生成帖子列表时,我希望登录用户能够单击星号来收藏该帖子。关于如何通过ajax做到这一点的任何建议?我想我会为此使用 many_to_many 关系,但只是不确定是否在 Rails 中通过 ajax 发布。
【问题讨论】:
标签: jquery ruby-on-rails ruby ajax ruby-on-rails-3
首先:您的关联可以通过连接表更加明确,例如 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: "/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 或不返回任何内容,然后将收藏夹添加给用户。
【讨论】: