我试图在我的应用程序中表示用户之间的关系,用户可以拥有许多关注者,并可以跟随其他用户.
我想要像user.followers()和user.followed_by()
可以请你详细告诉我如何用ActiveRecord来代表这个?
我想要像user.followers()和user.followed_by()
可以请你详细告诉我如何用ActiveRecord来代表这个?
谢谢.
解决方法
你需要两个模型,一个人和一个追随者
- rails generate model Person name:string
- rails generate model Followings person_id:integer follower_id:integer blocked:boolean
和模型中的以下代码
- class Person < ActiveRecord::Base
- has_many :followers,:class_name => 'Followings',:foreign_key => 'person_id'
- has_many :following,:foreign_key => 'follower_id'
- end
并在您撰写的“跟随”类中对应
- class Followings < ActiveRecord::Base
- belongs_to :person
- belongs_to :follower,:class_name => 'Person'
- end
你可以让你的名字更清楚(我特别不喜欢跟随名字),但这应该让你开始.