使用数组数据类型查询Rails Postgres

时间:2016-05-05 09:07:26

标签: ruby-on-rails arrays postgresql

所以,我一直在尝试在Rails中查询我的PostgreSQL模型,但是得到以下错误:

  

未定义的方法`id'对于TransactionTemplate :: ActiveRecord_Relation

我的代码:

    @transaction_templates = TransactionTemplate.where("transaction_category_id = 1")
    @transaction = Transaction.where("transaction_template_id in (?)", @transaction_templates.id)

我知道事务模板是一个数组,因此不仅需要查找一个ID,而且还有多个ID,就像我想要的那样。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

@transaction_templates = TransactionTemplate.where("transaction_category_id = 1")
@transaction = Transaction.where("transaction_template_id in (?)", @transaction_templates.map(&:id))

答案 1 :(得分:0)

如果您只需要ID,请尝试:

@transaction_template_ids = TransactionTemplate.where("transaction_category_id = 1").pluck(:id)
@transaction = Transaction.where("transaction_template_id in (?)", @transaction_template_ids)

或者你有适当的关联

@transaction = Transaction.joins(:transaction_template).where("transaction_category_id = 1")