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