Twitter-Like"回复和转发" Rails 3

时间:2017-03-18 18:42:00

标签: ruby-on-rails ruby-on-rails-3 activerecord

我正在构建一个模仿我最喜欢的应用程序的示例rails应用程序。我想对照片和照片的重新发布照片回复 - 类似于您通过Twitter回复和转发的方式。我应该创建一个单独的关系模型来捕获照片回复和重新发布,还是应该处理照片模型中的所有内容。

class Photo < ActiveRecord::Base

   attr_accessible :caption, :source, :source_remote_url, :source_file_name, 

   has_attached_file :source
   validates_attachment_content_type :source 

   belongs_to :user

   has_many :replies
   has_many :reposts  

  def source_remote_url=(url_value)
    self.source = URI.parse(url_value) unless url_value.blank?
   super
  end

 def replies
   join_table 
 end

 def replies?(other_user)
   join_table.find_by_replied_id(other_user.id)
 end

 def reply!(other_user)
   join_table.create!(replied_id: other_user.id)
 end

1 个答案:

答案 0 :(得分:0)

您应该为回复和转发制作另一个模型。因为一张照片有许多来自不同人群的转推,也有不同的转推。

在这种情况下,我会创建一个Photo模型,一个Retweet模型和一个Reply模型。