ruby-on-rails - 使用 :limit in to_json Statement?

标签 ruby-on-rails ruby

我目前正在努力使用 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 而不是全部?

最佳答案

两种选择:

只需在 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'

关于ruby-on-rails - 使用 :limit in to_json Statement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24652551/

相关文章:

ruby-on-rails - 需要一个用于 rails 的 HTTP gem

arrays - 浏览器正在输出对象数组。请帮我摆脱这些

ruby-on-rails - 为什么这条评论会在 Ruby on Rails 上产生编译错误?

ruby-on-rails - 什么是保存草稿帖子的 RESTful 方式?

ruby-on-rails - 尝试安装 petergate gem 时 Bundler 找不到 i18n-0.8.6

ruby-on-rails - Rails 测试模型说 'Expected false to be truthy'

ruby-on-rails - Rails.root 文件路径通配符

ruby - gem:找不到命令

ruby - 当其中一个操作数为 nil 时,按位或返回 bool 值

ruby-on-rails - 如何获取与嵌套模型关联的所有数据?