3-8 associations 解说

has_manybelongs_to

  • 在 Rails 里面,model 和 model 之间的关联叫做 associations。
  • Associations(通常)成对出现。
  • 一篇 topic 会有许多(have many)投票记录,所以要在 Topic model 里面写 has_many :votes。
    * 当你向一篇 topic 要它的投票记录的时候,你会得到一个 Array,里面有该 topic 的投票记录。
  • 一笔投票记录对应到一篇特定的 topic,所以要在 Vote model 里面写 belongs_to :topic。
    * 当你向一笔投票记录要它的 topic 的时候,你会得到那笔投票记录所属的 topic。

此外,自己被删除时候,删掉所拥有的资料也很重要。在 has_many :votesdependent: :destroy 意思是说,当一篇Topic 被删除(destroy)的时候,它的投票记录(votes)也要一并删除。没有 dependent :destroy 的话,这些投票记录会永远留在资料库里面。