【问题标题】:PG::UndefinedTable: ERROR: missing FROM-clause entry for table "clients"PG::UndefinedTable: 错误:缺少表“clients”的 FROM 子句条目
【发布时间】:2016-03-24 20:34:53
【问题描述】:

我收到以下错误:

PG::UndefinedTable: 错误:缺少表“clients”的 FROM 子句条目。

当我尝试执行以下查询时会发生这种情况:

SELECT  "folders".* FROM "folders" WHERE (clients.name ilike '%aleena%')  ORDER BY clients.name LIMIT 10):

以下代码用于选择:

  def search_folders
    Folder.where('clients.name ilike :search', search: "%#{@params[:s]}%")
          .references(:clients)
          .order('clients.name')
          .limit(@params[:per] || 10)
  end

【问题讨论】:

  • 你的数据库中有folders 表吗?您是否创建并运行了迁移?
  • 是的,我有文件夹表。
  • 您在 where 子句中使用 :clients 表,但它不存在于 :from
  • 我使用上面的代码,请检查:
  • 就像@AlexanderShlenchack 写的那样,您尝试获取folders,但您在where 子句中使用了clients 列。

标签: ruby-on-rails psql


【解决方案1】:

您应该在查询中加入您的clients 表:

Folder.joins(:client)
      .where('clients.name ilike :search', search: "%#{@params[:s]}%")
      .references(:clients)
      .order('clients.name')
      .limit(@params[:per] || 10)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-22
    • 2019-02-17
    • 2015-10-30
    • 2018-06-30
    • 2015-12-19
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    相关资源
    最近更新 更多