有没有办法将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键转换为符号。

10-06 12:06