1

我有我的配置文件遷移是這樣的:創建使用散列用戶定義的屬性 - Rails的

class CreateProfiles < ActiveRecord::Migration 
    def self.up 
    create_table :profiles do |t| 
     t.integer :user_id 
     t.text :detail 
     t.boolean :visible 
     t.timestamps 
     end 
    add_index :profiles, :detail 
    end 

    def self.down 
    drop_table :profiles 
    end 
end 

而且我有一個User has_one ProfileProfile belongs_to User關係。

現在,我想將配置文件詳細信息存儲爲序列化。所以我有Profile類是這樣的:

class Profile < ActiveRecord::Base 
    belongs_to :user 
    serialize :detail, Hash 
end 

這是因爲我希望每個用戶能夠創建不同的配置文件的詳細信息,像這樣

Profile.new.detail ={:education => ["Degree", true], :Hobby => ["Music", false] } 

現在,因爲我有USER_ID有其他屬性,我可以使用什麼命令爲用戶添加新的細節?

回答

2

對於Profile has_many Details

p = Profile.new 
p.detail = [] 
p.detail << {:'Linked In Profile' => ["link", false]} 
p.detail << {education: [...]} 

對於Profile has_one Detail

Profile.new.detail = { :Education => ["Degree", true], :'Linked In Profile' => ["link", false] } 
+0

謝謝,Profile.new.detail = {:教育=> [ 「」,真],:鎮=> [「庫克「,false]}這個工程,但我可以保存user_id也一起,因爲每個用戶將有單獨的配置文件屬性! – 2012-03-02 15:15:35

+0

你想'個人資料'有很多'細節'?每個都有它的'Profile'屬性? – farnoy 2012-03-02 15:20:30

+0

'Profile.new.detail = {education:true,user_id:@ user.id}',但我不知道你爲什麼要這麼做。 – farnoy 2012-03-02 15:23:05

相關問題