DIPERBARUI:
Implementasi yang tepat akan bergantung pada database Anda, tetapi PostgreSQL sekarang memiliki kolom json
dan jsonb
yang secara native dapat menyimpan data hash / objek Anda dan memungkinkan Anda untuk melakukan kueri terhadap JSON dengan ActiveRecord !
ubah migrasi Anda dan Anda selesai.
class Migration0001
def change
add_column :users, :location_data, :json, default: {}
end
end
ASLI:
Untuk detail selengkapnya: rails docs && apidock
Pastikan kolom Anda adalah :text
dan tidak:string
Migrasi:
$ rails g migration add_location_data_to_users location_data:text
harus membuat:
class Migration0001
def change
add_column :users, :location_data, :text
end
end
Kelas Anda Akan Terlihat Seperti:
class User < ActiveRecord::Base
serialize :location_data
end
Tindakan yang Tersedia:
b = User.new
b.location_data = [1,2,{foot: 3, bart: "noodles"}]
b.save
Lebih Mengagumkan ?!
memanfaatkan 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
Dengan hstore Anda dapat mengatur atribut pada bidang serial
class User < ActiveRecord::Base
store_accessor :location_data, :city, :state
end