1. MasamiKumazawa

    No comment

    MasamiKumazawa
Changes in body
Source | HTML | Preview

Railsで非同期処理のテストをしようとしたところ、google先生を頼りに

railsuRuby
xhr :patch, race_path(@race), race: { nickname: new_name }

と書いたら、

DEPRECATION WARNING: `xhr` and `xml_http_request` are deprecated and will be removed in Rails 5.1.
Switch to e.g. `post comments_path, params: { comment: { body: 'Honey bunny' } }, xhr: true`.

とか怒られたので、言われるがままに

patch race_path(@race), params: { race: { nickname: new_name } }:xhr => true' 
patch race_path(@race), params: { race: { nickname: new_name } }:xhr => true

としてみたところ、テストが通るようになった。

でも、これでは黒魔術っぽいので、

patch( race_path(@race), {'xhr' => true, 'params' => { 'race' => { 'nickname' => new_name } } } )

とか書くと余計解り辛い?
patchメソッドに渡す引数は二つ、URLとHashの二つ、URLはrace_path(@race) => /race/ で、Hashはhash => {:xhr,:params}から構成されていている。
Hashの最初の項目、xhrのtrueは一目瞭然。

次のparamsと言うHashはraceと言うHashを持っていって、raceというHashはnickname: new_nameという構成になってすよと。

解り辛ぇ(^^;

xhrを最初に持ってきたら、なんか読みやすくなった気はするれど、Hashの階層深くね?