我目前正在使用Rails中的to_json Helper
我想要包含前5个curve_measurements。 这就是我的代码目前所看到的:
Sector.first.curves.to_json(:include => {:curve_measurements => {:except => [:created_at,:updated_at,:curve_id],:limit => 5}, :curvetype =>{}})
结果包括所有curve_measurment值,而不仅仅是前5个。 所以似乎:limit参数不会影响我的查询。
如何只包含5个或10个curve_measurements而不是全部?
答案 0 :(得分:4)
两种选择:
只需在Curve
中创建一个名为five_cms
的方法,例如:
def five_cms; curve_measurements.limit(5); end
然后做:
Sector.first.curves.to_json({
:include => {
:five_cms => {
:except => [:created_at,:updated_at,:curve_id],
},
:curvetype => {}
}
})
或者在Curve
中为您的关联添加限制。在Rails 4中,您可以这样做:
has_many :five_cms, lambda { limit(5) }, class_name: 'CurveMeasurement'
在Rails 3及更早版本中,我认为是:
has_many :five_cms, limit: 5, class_name: 'CurveMeasurement'
答案 1 :(得分:0)