rails中的JSON对象大小包括

时间:2017-10-18 12:24:09

标签: ruby-on-rails json ruby ruby-on-rails-5

我试图获取transactions中的所有postgresql dbtransactionspairs表具有一对一的关系。在配对表中,有一个名为match的列,类型为json。我想选择所有transactions,包括pair计数大于1的pair.match

我尝试了pairs = Pair.where('json_array_length(match) > 1')

如何获得pair.match大于1的所有交易。试过这个 - > transactions = Transactions.includes(:pair).where(pairs: 'json_array_length(match) > 1')但是没有用。

更新:Transaction而不是Transactions

2 个答案:

答案 0 :(得分:2)

有几点意见:

  1. 模型应为“交易”(单数)
  2. 你真的通过命名为“交易”来为自己创造一个受伤的世界。这基本上是一个“保留字”。你不想使用它。您将与其他已经存在称为“交易”或“交易”的方法的地方发生冲突
  3. 与名为“匹配”的列相同。这是Ruby中一个非常常见的方法名称。
  4. 我知道我没有回答这个问题,但这对评论来说太过分了,你需要在继续之前解决这些问题。

答案 1 :(得分:1)

您可以尝试加入这两个表。假设您的模型是配对和交易

transactions = Transaction.joins(:pair).where('json_array_length(match) > 1')