Я бы всерьез подумал о том, чтобы вместо этого правильно использовать реляционную базу данных.
# since diagnosis is highly irregular we most likely need to configure rails
# to pluralize it correctly
# config/initializers/inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'diagnosis', 'diagnoses'
end
class Patient < ApplicationRecord
has_many :patient_diagnoses
has_many :diagnoses, through: patient_diagnoses
end
# this table provides data normalization
class Diagnosis < ApplicationRecord
has_many :patient_diagnoses
has_many :patients, through: patient_diagnoses
end
# this is just a join table
class PatientDiagnosis < ApplicationRecord
belongs_to :patient
belongs_to :diagnosis
end
Это позволяет вам использовать внешние ключи для обеспечения ссылочной целостности и позволяет использовать ассоциации ActiveRecord вместо того, чтобы просто объединять что-то непонятное. Здесь очень мало реальных преимуществ использования типа массива.
Если вы все еще хотите использовать столбец массива, вам не следует использовать ActiveRecord :: AttributeMethods :: Serialization . Он используется с простыми старыми столбцами varchar / text для хранения строк YAML, которые сериализуются / не сериализуются в Rails. Это пережиток мрачных дней до того, как у нас появились нативные типы JSON / массивов, и он действительно не имеет никакого применения, кроме как в устаревших приложениях.