假设正在使用以下数据库架构构建Twitter克隆:
User
- id
Tweet
- id
- user_id
Star
- id
- tweet_id
- user_id
在这种情况下,用户有很多推文,每条推文都有很多星星,每颗星都属于一个用户。
使用Rails的Active Record,可以构建一个查询来检索所有Tweet对象,并包括当前用户是否创建了一个星?
寻找与此相似的回复:
Tweet
- id
- user_id
- starred (true)
Tweet
- id
- user_id
- starred (false)
Tweet
- id
- user_id
- starred (true)
答案 0 :(得分:0)
tweet.rb
def starred?
star.present?
end
def self.tweets_with_stars
hash = Hash.new()
all.each do |t|
hash[t.id] = [tweet: t.id, user_id: t.user_id, starred: t.starred?]
end
return hash
end
在你看来。
<% Tweet.tweets_with_stars.each do |key, value| %>
Tweet ID: <%= key %><br>
User ID: <%= value[0][:user_id] %><br>
Starred: <%= value[0][:starred] %> <br>
<% end %>