2012-07-16 5 views
0

나는 Twitter Repost System과 비슷한 것을 구현하고자합니다. 그러므로 이것을 예로 사용하겠습니다. 그래서 짹짹 모델을 가지고 다른 사용자가 다른 사용자의 certian 짹짹을 다시 게시 할 수있게하고 싶다고 가정 해 봅시다. 어떻게 이런 식으로해야합니까? Tweet.all을 사용하여 데이터베이스에 저장된 모든 트윗을 recive하기 위해 리트 윗 클래스를 트윗에 넣는 것이 멋진 아이디어라고 생각했지만 어떻게 든 예상대로 작동하지 않았습니다 ... 다음 코드는 작동하지 않는 경우에도이를 구현하는 방법을 보여주는 예제 일뿐입니다. Tweet.all을 사용하여 트윗과 리트 윗 모두에 액세스 할 수있는 작업 게시 모델을 만드는 방법에 대한 아이디어가 있습니까? 중요 Datamapper로 "Retweets"

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해야한다.

답변

0
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 
+0

슬프게도 반송파와 함께 작동하지 않습니다./당신은 반송파와 함께 작동하는 해결책을 알고 있습니까? –