JSON包括条件

Bob*_*Bob 4 json ruby-on-rails

我的设置:Rails 2.3.10,Ruby 1.8.7

假设我有这段代码片段

user = User.find(1)
user.to_json(:include => :posts)
Run Code Online (Sandbox Code Playgroud)

如果我想要将用户的帖子包含在某个条件中,例如只有一周的帖子,该怎么办?

Rya*_*igg 6

定义一个所谓的新方法week_old_postsUser模型:

def week_old_posts
  posts.where("created_at > ?", 1.week.ago)
end
Run Code Online (Sandbox Code Playgroud)

然后在你的to_json通话中使用methods而不是include:

user.to_json(:methods => :week_old_posts)
Run Code Online (Sandbox Code Playgroud)

:include 如果要包含整个关联,则更有用,如果要包含部分关联,请使用方法.