我已经建立了一个用户和朋友关系模型,但问题是通过这些关联我可以成为自己的朋友。我已经在我的视图和控制器中成功地抑制了它,但从逻辑上讲,它应该在模型中被抑制,因为我仍然可以从我想要避免的控制台创建友谊。
用户模型
has_many :user_friendships
has_many :friends, through: :user_friendships,
conditions: { user_friendships: { state: 'accepted' } }
用户友谊模型
belongs_to :user
belongs_to :friend, class_name: 'User', foreign_key: 'friend_id'
其他一切都像添加,阻止,删除,请求朋友一样完美运行我的模型的唯一问题是我也可以自己加好友,这是我想避免的。