ปรับปรุง:
การใช้งานที่แน่นอนจะขึ้นอยู่กับฐานข้อมูลของคุณ แต่ตอนนี้ 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
เจ๋งกว่า?!
ใช้ 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
ด้วย hstore คุณสามารถตั้งค่าแอตทริบิวต์ในฟิลด์ซีเรียลไลซ์
class User < ActiveRecord::Base
store_accessor :location_data, :city, :state
end