AKTUALIZACJA:
Dokładna realizacja będzie zależała od bazy danych, ale teraz ma PostgreSQL json
i jsonb
kolumn, które mogą natywnie przechowywania swoich danych hash / przedmiot i pozwalają na zapytania przeciwko JSON z ActiveRecord !
zmień migrację i gotowe.
class Migration0001
def change
add_column :users, :location_data, :json, default: {}
end
end
ORYGINALNY:
Więcej informacji: rails docs && apidock
Upewnij się, że twoja kolumna jest, :text
a nie:string
Migracja:
$ rails g migration add_location_data_to_users location_data:text
powinien stworzyć:
class Migration0001
def change
add_column :users, :location_data, :text
end
end
Twoja klasa wyglądałaby tak:
class User < ActiveRecord::Base
serialize :location_data
end
Możliwe akcje:
b = User.new
b.location_data = [1,2,{foot: 3, bart: "noodles"}]
b.save
Więcej niesamowitych ?!
wykorzystaj hstore postgresql
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
Dzięki hstore możesz ustawić atrybuty w serializowanym polu
class User < ActiveRecord::Base
# setup hstore
store_accessor :location_data, :city, :state
end