比方說,我有一個User
模型,其中has_many :posts
,而Post
has_many :comments
。ActiveRecord是否可以設置爲自動限制二度關聯?
如果我這樣做@user.posts.map {|post| post.comments}.flatten
我會得到全部對用戶帖子的評論。有沒有地方可以配置Post
或Comment
模型來檢測它在特定用戶的上下文中被引用,並且只返回特定用戶的評論?
也就是說,@user.posts.map {|post| post.comments}.flatten
和@posts.map {|post| post.comments}.flatten
(假設相同的帖子)不會返回相同數量的評論(假設多個用戶評論)。
從previous SO question's answers,這聽起來像我想某種nested has_many through。那是對的嗎? Rails 3中有沒有簡單的方法來檢測'源'?
不知道我跟隨。這聽起來像你想找到一個特定用戶的評論,對吧?如果是這樣,你應該直接鏈接用戶和他/她的評論:即'用戶''has_many:評論'。不需要複雜的關係嵌套。 – Flambino
正確,但我希望他們在帖子的上下文中。 – pr1001
所以你想用戶的評論他/她自己的帖子? – Flambino