有没有办法将fixture转换为一组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(???)
感谢所有的帮助。
最佳答案
您可以将对象转换为json并返回包含正确参数键的散列,从而:
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键转换为符号。