Rails 3 to_json包含condition / where子句

时间:2012-09-18 18:29:51

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

我使用以下内容输出JSON记录列表:

@team.people.to_json(
      :include => [:user, :statistics => {:include => :attribute}]).html_safe

但是,我想只包含对其设置了某个type_id的统计信息。本质上是与用户和统计信息的左外连接,其中统计数据上的type_id等于某个数字。

1 个答案:

答案 0 :(得分:0)

我至少可以想到几个选项:

  1. Person模型中,覆盖to_json(或者,更好的是,serializable_hash)并在那里进行条件化。
  2. 取代{:include => :attribute} {:methods => :foo}而不是foo中的条件。
  3. 以下是我覆盖serializable_hash的地方的示例,如果它有帮助:

      def serializable_hash(options={})
        options = { 
          :methods => [
            'client',
            'services',
            'products',
            'has_payments',
          ]}.update(options)
        super(options)
      end 
    

    我可以想象options =以上的某些内容,如果type_id是您要查找的数字,则将methods数组设置为一个,否则为其他内容。