Rails с PostgreSQL не может упорядочить записи по значению, получить PG :: InvalidColumnReference: ERROR - PullRequest
0 голосов
/ 12 марта 2019

У меня есть модель под названием «Кандидат», в столбце «Статус» есть строка. Я бы хотел упорядочить записи по статусу от «Новый» до «В ожидании». Мой код работал в Sqlite3, но не в PostgreSQL.

Это моя модель:

class Candidate < ApplicationRecord
  belongs_to :collaborator, optional: true
  has_many :curriculum_vitaes, dependent: :destroy

  def self.order_by_status
    order_by = ["CASE"]
    STATUS.each_with_index do |status, index|
      order_by << "WHEN status='#{status}' THEN #{index}"
    end
    order_by << "END ASC, name ASC"
    order(order_by.join(" "))
  end

  STATUS = [
    "New",
    "Received CV",
    "Checking CV",
    "Waiting Interview",
    "Waiting Result",
    "Passed",
    "Failed",
    "Pending"
  ]

И в контроллере, когда я заказываю записи по @candidates = Candidate.order_by_status Я всегда получаю ошибку: PG::InvalidColumnReference: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list

Вы можете мне помочь?

...