PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Релсите търсят нагоре чрез сериализиран масив

Решението, което използвам за сега (определено отворено за други подходи!) е да принудя Rails да сериализира с нещо различно от Yaml, за да позволи заявки за низове:

class Foo < ActiveRecord::Base
  serialize :arr, SerializedArray

  def self.find_by_arr
    self.where(arr: SerializedArray.dump(arr)).take
  end
end

class SerializedArray
  def self.load(arr)
    arr ? JSON.load(arr) : nil
  end

  def self.dump(arr)
    arr ? JSON.dump(arr) : nil
  end
end

Малко е неприятно, че трябва да правя заявки с персонализирания find_by_arr , но работи.

(Редактиране:премахнат лош примерен код.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да групираме и броим по дни в Rails в Postgres?

  2. как да използвате Blob тип данни в Postgres

  3. Django:Група заявки по месец

  4. Rails:Извикването на .limit(5) променя реда на резултатите

  5. Invoke-AzVMRunCommand и Start-Process под определен потребител на отдалечена VM с помощта на Azure Runbook