【发布时间】:2016-02-23 02:23:10
【问题描述】:
我有两个模型:Users 和 Posts。我设置事物的方式是,帖子属于所有者(即用户),并且也有许多参与者(即用户)。在我的用户模型中,我想确保owner 永远不属于post。我已经在前端完成了这项工作,但发现的代码比需要的要多。
这让我相信使用conditions 将是一个理想的解决方案。我已经看到以这种方式使用 SQL 条件,但不知道在所有权方案中完成此操作的最佳方法是什么。有什么建议吗?
class User < ActiveRecord::Base
has_many :posts
# belongs_to :posts, conditions: ...
end
class Post
has_many :participants, class_name: "User", foreign_key: "user_id"
belongs_to :owner, class_name: "User", foreign_key: "user_id"
end
【问题讨论】:
-
我不明白这句话:我想确保一个所有者永远不属于一个帖子你的意思是你不希望一个帖子的所有者成为另一个帖子的参与者发布?
-
关闭但没有。对于一个特定的帖子,我不希望
owner也成为participant。 -
哦,知道了,给我 5 分钟
标签: ruby-on-rails ruby activerecord associations conditional-statements