AGGIORNAMENTO:
L'implementazione esatta dipenderà dal tuo database, ma PostgreSQL ha ora json
e jsonb
colonne che possono archiviare nativamente i tuoi dati hash / oggetto e che ti permettono di interrogare il JSON con ActiveRecord !
cambia la tua migrazione e il gioco è fatto.
class Migration0001
def change
add_column :users, :location_data, :json, default: {}
end
end
ORIGINALE:
Per maggiori dettagli: rails docs && apidock
Assicurati che la tua colonna sia :text
e non:string
Migrazione:
$ rails g migration add_location_data_to_users location_data:text
dovrebbe creare:
class Migration0001
def change
add_column :users, :location_data, :text
end
end
La tua classe sarebbe simile a:
class User < ActiveRecord::Base
serialize :location_data
end
Azioni Disponibili:
b = User.new
b.location_data = [1,2,{foot: 3, bart: "noodles"}]
b.save
Più fantastico ?!
utilizzare postgresql hstore
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
Con hstore puoi impostare gli attributi sul campo serializzato
class User < ActiveRecord::Base
# setup hstore
store_accessor :location_data, :city, :state
end