mah*_*off 1 activerecord ruby-on-rails ruby-on-rails-3
在Rails中,我可以说:
Post.find_by_user_id 1
Run Code Online (Sandbox Code Playgroud)
但有没有办法说出类似的话
Post.find_by_user User.first
Run Code Online (Sandbox Code Playgroud)
?
没什么大不了的,但会更清洁.
Jes*_*ott 10
你可以翻到:
User.first.posts
Run Code Online (Sandbox Code Playgroud)
或者,在帖子上使用"范围"...所以你可以:
class Post < ActiveRecord::Base
scope :for_user, lambda{|user| where(:user_id => user.id) }
end
Run Code Online (Sandbox Code Playgroud)
你会用:
user = User.first
Post.for_user(user)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |