2012-07-27 63 views
1

任何人都可以指出我在正确的方向了解如何实现类似于Facebook的“喜欢”或Twitter的“Follow/Unfollow”系统我可以在Rails中创建?Facebook的“喜欢”或Twitter的“跟随”系统 - 在Rails 3

从我的理解我需要使用不显眼的Javascript。

我有一件事模型(的has_many:喜欢)和像模型(belongs_to的:事)

任何指针?

+1

如果您从开始的回报率,你可以在http://ruby.railstutorial.org/看看ruby-on-rails-tutorial-book(我买了视频演员)。这个很棒。他正在做一个示例项目,在那里创建一个类似于网站的推特,所以它非常接近您的需求。 – choise 2012-07-27 22:59:33

+0

“喜欢”和“跟随”是两个非常不同的问题。 – mikeycgto 2012-07-27 23:14:24

+0

基本上我想让用户可以说他/她喜欢/使用一件东西。所以我创建了一个“喜欢”的模型。我希望当用户点击“like/use”按钮(取决于是否已经存在)时,会创建一个新的“like”对象,然后将“like”按钮更改为“不同/不使用”状态 - 这样才能完成相反的任务。有任何想法吗? – adamteale 2012-07-27 23:22:46

回答

1

你可以做AJAX调用的函数,实现任何你喜欢的功能,函数内,(在这种情况下,“跟随”),你可以做到这一点有:

[link_to_function][1] 

柜面,你是使用Rails 3.2.4,它弃用,你可以使用(这是杰里米的评论 https://gist.github.com/rails/rails/pull/5922#issuecomment-5770442):

module LinkToFunctionHelper 
    def link_to_function(name, *args, &block) 
    html_options = args.extract_options!.symbolize_keys 

    function = block_given? ? update_page(&block) : args[0] || '' 
    onclick = "#{"#{html_options[:onclick]}; " if html_options[:onclick]}#{function}; return false;" 
    href = html_options[:href] || '#' 

    content_tag(:a, name, html_options.merge(:href => href, :onclick => onclick)) 
    end 
end 
+0

感谢您的评论球员。将检查全部并报告回来。谢谢! @ d34th4ck3r - 我可以在哪里阅读实现该模块?那是我放入我的“事物”助手的东西吗?欢呼声 – adamteale 2012-07-27 23:11:54

+1

您可以通过本教程学习如何实现完整的“关注”功能:http://ruby.railstutorial.org/chapters/following-users#top。然而,如果你只对ajax部分感兴趣,你可以直接阅读:http://ruby.railstutorial.org/chapters/following-users#sec:a_working_follow_button_with_ajax – d34th4ck3r 2012-07-28 06:38:45