Ruby on rails Rails 3 to_json include with condition/where子句
我使用以下命令输出JSON记录列表:Ruby on rails Rails 3 to_json include with condition/where子句,ruby-on-rails,ruby-on-rails-3,activerecord,ruby-on-rails-3.1,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 但是,我只想包括设置了特定类型id的统计信息。本质上是与用户和统计数据的左外连接,其中统计数据上的a type_id等于某个数字。我至少可以想到几个选项: 在Person模型中,重写为_json,或者更好的是,重写为可序列化的_散列,并在那里
@team.people.to_json(
:include => [:user, :statistics => {:include => :attribute}]).html_safe
但是,我只想包括设置了特定类型id的统计信息。本质上是与用户和统计数据的左外连接,其中统计数据上的a type_id等于某个数字。我至少可以想到几个选项: 在Person模型中,重写为_json,或者更好的是,重写为可序列化的_散列,并在那里执行条件转换。 而不是{:include=>:attribute}执行{:methods=>:foo}并在foo中执行您的条件。 下面是一个我重写可序列化_散列的示例,如果有帮助的话:
def serializable_hash(options={})
options = {
:methods => [
'client',
'services',
'products',
'has_payments',
]}.update(options)
super(options)
end
我可以想象上面的选项=如果type\u id是您要查找的数字,则将methods数组设置为一个值,或者设置为其他值。不幸的是,这对我不起作用,type\u id需要是动态的,这是在返回活动记录结果集的函数上下文中设置的。本质上,我需要能够在include的左侧外部联接上添加一个“and”条件。然而,在Rails中似乎不可能做到这一点。您能在您的问题中发布您的查询吗?我已经澄清了这个问题,并在这里重新提问:谢谢您的帮助。