sql >> データベース >  >> RDS >> PostgreSQL

#orに渡される関係は、構造的に互換性がある必要があります。互換性のない値:[:references]

    Githubには既知の問題があります。

    このコメントによると、structurally_incompatible_values_for_orをオーバーライドすることをお勧めします 問題を克服するには:

    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
    

    また、SQLを使用するオプションは常にあります:

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


    1. 2つのクエリの結果を1つのデータセットに結合する方法

    2. AndroidでRoomを使用するときに最新バージョンのSqliteaarをインストールする方法

    3. カスケード削除制約を追加するにはどうすればよいですか?

    4. MySQLまたはMariaDBデータベースをAWSおよびGoogleCloudで高可用性にする方法