Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby &引用;“转发”;使用数据映射器_Ruby_Datamapper_Carrierwave_Recreate_Repost - Fatal编程技术网

Ruby &引用;“转发”;使用数据映射器

Ruby &引用;“转发”;使用数据映射器,ruby,datamapper,carrierwave,recreate,repost,Ruby,Datamapper,Carrierwave,Recreate,Repost,我想实现一个类似于Twitter转发系统的东西,因此我将以它为例。假设我有一个Tweet模型,我想允许其他用户转发另一个用户的特定Tweet,我如何实现这样的功能? 当我使用tweet.all接收存储在数据库中的所有tweet时,我认为将retweet类放入tweet中,以便能够访问repost也是一个很酷的主意,但不知怎的,我没有按照预期工作。。。 下面的代码只是一个示例,它应该展示如何实现这一点,即使它不起作用。。。 你知道我如何建立一个有效的转发模型,通过使用Tweet.all,我可以访问

我想实现一个类似于Twitter转发系统的东西,因此我将以它为例。假设我有一个Tweet模型,我想允许其他用户转发另一个用户的特定Tweet,我如何实现这样的功能? 当我使用
tweet.all
接收存储在数据库中的所有tweet时,我认为将retweet类放入tweet中,以便能够访问repost也是一个很酷的主意,但不知怎的,我没有按照预期工作。。。 下面的代码只是一个示例,它应该展示如何实现这一点,即使它不起作用。。。 你知道我如何建立一个有效的转发模型,通过使用
Tweet.all
,我可以访问Tweet和retweet吗

class Tweet
  class Retweet
    include DataMapper::Resource

    belongs_to :user, key => true
    belongs_to :tweet, key => true
  end

  include DataMapper::Resource
  property :text, String
  property :timestamp, String

  belongs_to :user
end

重要提示:我应该与carrierwave兼容。

遗憾的是,这不适用于carrierwave:/n您知道一种适用于carrierwave的解决方案吗?
class Tweet
  include DataMapper::Resource
  property :id, Serial
  has n, :retweets, 'Tweet', :child_key => :parent_id
  belongs_to :parent, 'Tweet', :required => false
  belongs_to :user

  def is_retweet?
    self.parent_id ? true : false
  end
end

original = Tweet.create :user => user1
retweet = Tweet.create :parent => original, :user => user2
retweet.is_retweet? # => true