PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Relacja przekazana do #lub musi być strukturalnie zgodna. Niezgodne wartości:[:referencje]

Na Github jest znany problem.

Zgodnie z tym komentarzem możesz chcieć zastąpić structurally_incompatible_values_for_or aby rozwiązać problem:

def structurally_incompatible_values_for_or(other)
  Relation::SINGLE_VALUE_METHODS.reject { |m| send("#{m}_value") == other.send("#{m}_value") } +
    (Relation::MULTI_VALUE_METHODS - [:eager_load, :references, :extending]).reject { |m| send("#{m}_values") == other.send("#{m}_values") } +
    (Relation::CLAUSE_METHODS - [:having, :where]).reject { |m| send("#{m}_clause") == other.send("#{m}_clause") }
end

Ponadto zawsze istnieje możliwość użycia SQL:

@items
  .joins(:orders)
  .where("orders.user_id = ? OR items.available = true", current_user.id)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień język systemu i komunikatów o błędach w PostgreSQL

  2. Przekaż wiele wartości w jednym parametrze

  3. Jak mogę zaimportować dane z ASCII (ISO/IEC 8859-1) do mojej bazy danych Rails/PGSQL?

  4. Wielokrotne używanie tej samej kolumny w klauzuli WHERE

  5. Jak działa funkcja LocalTime() w PostgreSQL