find_by association

时间:2012-06-01 19:41:18

标签: ruby-on-rails ruby-on-rails-3 activerecord

在Rails中,我可以说:

Post.find_by_user_id 1

但有什么方法可以说像

Post.find_by_user User.first

没什么大不了的,但会更清洁。

2 个答案:

答案 0 :(得分:10)

你可以转到:

User.first.posts

或者,在帖子上使用“范围”......所以你可以:

class Post < ActiveRecord::Base
  scope :for_user, lambda{|user| where(:user_id => user.id) }
end

你会使用:

user = User.first
Post.for_user(user)

答案 1 :(得分:2)

这个怎么样:

User.first.posts