2013-02-22 44 views
2

有没有办法将灯具转换为一组ActionController :: Parameters?Rails 3:将灯具转换为一组ActionController ::参数

例如:

# contacts.yml 

dan: 
    first_name: Dan 
    last_name: Gebhardt 
    email: [email protected] 
    notes: Writes sample code without tests :/ 

joe: 
    first_name: Joe 
    last_name: Blow 
    email: [email protected] 
    notes: Lousy plumber 

# contacts_test.rb 

@dan = contacts(:dan) 
# create params that represent Dan? 
@dan_as_params = ActionController::Parameters.new(???) 

任何及所有的帮助表示赞赏。

回答

2

你可以把对象变成JSON和回散含正确PARAM键这样的:

h= Hash[*JSON.load(@dan.to_json).map{ |k, v| [k.to_sym, v] }.flatten] 
params= {contact: h} 

更新:

你也可以使用JSON.parse

dan= Hash[*JSON.parse(@dan.to_json, symbolize_names: true).flatten] 
params= {contact: dan} 

其中有它自己将json键转换为符号的内部方式。