2

有没有办法将夹具转换为一组 ActionController::Parameters?

例如:

# contacts.yml

dan:
  first_name: Dan
  last_name: Gebhardt
  email: dan@example.com
  notes: Writes sample code without tests :/

joe:
  first_name: Joe
  last_name: Blow
  email: joe@example.com
  notes: Lousy plumber

# contacts_test.rb

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

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

4

1 回答 1

2

您可以将对象转换为 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 键转换为符号。

于 2013-02-22T15:50:15.470 回答