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 に変換し、正しい 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 キーをシンボルに変換する独自の内部的な方法があります。

于 2013-02-22T15:50:15.470 に答える