自引用公共数据库对象

时间:2013-07-21 11:05:16

标签: ruby-on-rails

我正在创建一个网站,您可以将音乐数据发送到服务器并将其保存并为您提供独特的“闪存”。我想将歌曲数据自我引用到flash。但是我在歌曲表中需要一个flash_id字段,但是因为我希望同一首歌的一个歌曲条目不起作用(我想要计算这首歌被闪现多少次)

每个Flash都像推文或帖子。它连接到用户

由于

歌曲模型

class Song < ActiveRecord::Base
  belongs_to :flash
end

Flash模型

class Flash < ActiveRecord::Base
  belongs_to :user
  has_one :song
end

1 个答案:

答案 0 :(得分:0)

你说,有一首歌可以“闪现”几次,而我只有一首闪光灯正好闪过一首歌。
所以你的关系必须反过来:flash必须包含song_id 如果song有一列flashes_count,您可以让Rails保留每首歌曲闪烁的缓存计数:

歌曲模型

class Song < ActiveRecord::Base
  has_many :flashes
end

Flash模型

class Flash < ActiveRecord::Base
  belongs_to :user
  belongs_to :song, counter_cache: true
end