0

我有一個看起來像這樣的模型,用戶內部的序列化屬性的偏好:Rake任務分配默認值哈希拋出錯誤

user.preferences 
=> 
@allow_fans=true, 
@approvals={:email=>true, :message=>false}, 
@comment_on_an_item={:email=>false, :message=>true}, 
@community_invitations={:email=>true, :message=>true}, 
@community_requests={:email=>true, :message=>true}, 
@flags={:email=>true, :message=>true}, 
@follows={:email=>false, :message=>true}, 
@likes_and_shares={:email=>false, :message=>true}, 
@make_my_email_visible=true, 
@trackbacks_pingbacks={:email=>true, :message=>false}> 

我已經寫了一耙的任務默認首哈希分配給像現有用戶下面

namespace :user_preferences do 
    desc "set default preferences for existing users" 
    task :pref_defaults => :environment do 
    default = {:comment_on_an_item => {'email' => nil, 'message' => true}, 
     :likes_and_shares => {'email' => nil, 'message' => true}, 
     :flags => {'email' => true, 'message' => true}, 
     :trackbacks_pingbacks => {'email' => true, 'message' => nil}, 
     :community_invitations => {'email' => true, 'message' => true}, 
     :approvals => {'email' => nil, 'message' => true}, 
     :community_requests => {'email' => true, 'message' => true}, 
     :follows => {'email' => nil, 'message' => true}} 

    User.update_all(:preferences => default) 
    end 
end 

但是當我運行rake任務rake user_preferences:pref_defaults,我得到的錯誤

** Invoke user_preferences:pref_defaults (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute user_preferences:pref_defaults 
rake aborted! 
PG::Error: ERROR: syntax error at or near "'--- 
- :likes_and_shares 
- email: 
    message: true 
'" 
LINE 5: ','--- 
     ^
: UPDATE "users" SET "preferences" = '--- 
- :comment_on_an_item 
- email: 
    message: true 
','--- 
- :likes_and_shares 
- email: 
    message: true 
','--- 
- :flags 
- email: true 
    message: true 
','--- 
- :trackbacks_pingbacks 
- email: true 
    message: 
','--- 
- :community_invitations 
- email: true 
    message: true 
','--- 
- :approvals 
- email: 
    message: true 
','--- 
- :community_requests 
- email: true 
    message: true 
','--- 
- :follows 
- email: 
    message: true 
' 

請幫助我解決這個錯誤。

回答