【发布时间】:2020-12-23 14:14:23
【问题描述】:
我有 2 个模型。让我们说
- 模型A
- 模型B
它们之间的关系如下所示
class ModelA < ApplicationRecord
belongs_to :distributor, class_name: 'ModelB', foreign_key: 'distributor_id'
belongs_to :asset_manager, class_name: 'ModelB', foreign_key: 'asset_manager_id'
end
class ModelB < ApplicationRecord
end
ModelB 有一个名为“name”的属性,我想从 ModelA 中对其执行搜索
所以当我执行这个查询时:
ModelA.ransack(distributor_name_or_asset_manager_name_cont: "some name")
它会抛出以下错误
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: missing FROM-clause entry for table "asset_managers_model_A"
它会尝试在数据库中触发以下查询
model_B.name ILIKE "some name" OR asset_managers_model_A.name ILIKE "some name"
那么,我在这里做错了什么吗?
【问题讨论】:
标签: ruby-on-rails activerecord ruby-on-rails-6 ransack