ОБНОВЛЕНО:
Точная реализация будет зависеть от вашей базы данных, но в PostgreSQL теперь есть столбцы json
и jsonb
, которые могут изначально хранить ваши данные хеш / объекта и позволяют вам запрос к JSON с ActiveRecord !
измените миграцию, и все готово.
class Migration0001
def change
add_column :users, :location_data, :json, default: {}
end
end
ОРИГИНАЛ:
Для более подробной информации: рельсы документы && apidock
Убедитесь, что ваш столбец :text
, а не :string
Миграция:
$ rails g migration add_location_data_to_users location_data:text
должна создать:
class Migration0001
def change
add_column :users, :location_data, :text
end
end
Ваш класс будет выглядетьКак:
class User < ActiveRecord::Base
serialize :location_data
end
Доступные действия:
b = User.new
b.location_data = [1,2,{foot: 3, bart: "noodles"}]
b.save
More Awesome?!
использовать postgresqlhstore
class AddHstore < ActiveRecord::Migration
def up
enable_extension :hstore
end
def down
disable_extension :hstore
end
end
class Migration0001
def change
add_column :users, :location_data, :hstore
end
end
С помощью hstore вы можете установить атрибуты в сериализованном поле
class User < ActiveRecord::Base
# setup hstore
store_accessor :location_data, :city, :state
end