sql >> Databáze >  >> RDS >> PostgreSQL

Vztah předaný do #nebo musí být strukturálně kompatibilní. Nekompatibilní hodnoty:[:reference]

Na Githubu je o tom známý problém.

Podle tohoto komentáře možná budete chtít přepsat structurally_incompatible_values_for_or k vyřešení problému:

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

Vždy je také možnost použít SQL:

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


  1. Jak nejlépe rozdělit řetězce csv v oracle 9i

  2. Využití šifrování k posílení zabezpečení databáze PostgreSQL

  3. CREATE TABLE IF NOT EXISTS ekvivalent v SQL Server

  4. Jak povolit podporu cizích klíčů v SQLite