PostgreSQL :: OID :: Array не поддерживает функцию `serialize` - PullRequest
0 голосов
/ 15 октября 2018

Я пытался развернуть в Heroku с колонкой array.Но эта ошибка происходит.И что я могу использовать метод вместо serialize лучше?

ActiveRecord::AttributeMethods::Serialization::ColumnNotSerializableError (Column `days` of type ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array does not support `serialize` feature.
Usually it means that you are trying to use `serialize`
on a column that already implements serialization natively.

// миграционный файл

class AddDaysToSchedule < ActiveRecord::Migration[5.2]
  def change
    add_column :event_types, :days, :text, array: true
  end
end

// расписание модели

class Schedule < ApplicationRecord
  serialize :days, Array

Пожалуйстадайте мне знать, вы знаете, как стек переполнения.

1 Ответ

0 голосов
/ 15 октября 2018

Решение 1: =>

class AddDaysToSchedule < ActiveRecord::Migration[5.2]
  def change
    add_column :event_types, :days, :string, array: true, default: []
  end
end

Нет необходимости сериализации

class Schedule < ApplicationRecord
  #serialize :days, Array

Решение 2: =>

Я бы посоветовал вам поступить так:-

class AddDaysToSchedule < ActiveRecord::Migration[5.2]
  def change
    add_column :event_types, :days, :string
  end
end

И сериализовать столбец в модели как массив

class Schedule < ApplicationRecord
  serialize :days, Array
end

Для хранения значений: -

sh = Schedule.new()
sh.days.push(day_value)
sh.save

Чтобы получить значение массива

 sh = Schedule.find(x)
 sh.days => will return array of days
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...