[解決済み] Capybaraを使用してクエリ文字列でカレントパスを取得する方法
2022-05-02 21:25:53
質問
ページのURLは次のようなものです。
/people?search=name
を使いながら
current_path
メソッドを実行すると
/people
だけです。
current_path.should == people_path(:search => 'name')
しかし、次のように失敗します。
expected: "/people?search=name"
got: "/people"
どうすれば合格になるのでしょうか?何か方法があるのでしょうか?
どのように解決するのですか?
カピバラさんにおける現代の慣習を反映させるために、この回答を更新しました。これが一般的な答えであり、多くの人が解決策を探しているときに参照されているものなので、これが理想的だと考えています。とはいえ、現在のパスをチェックする正しい方法は
has_current_path?
は、Capybaraが提供するマッチャーで、ここに文書化されています。
ここをクリック
使用例です。
expect(page).to have_current_path(people_path(search: 'name'))
ドキュメントにあるように、他のオプションも利用可能です。もし現在のページが
/people?search=name
にあることだけを気にしているが、それは
/people
ページで、パラメータに関係なく
only_path
オプションを指定します。
expect(page).to have_current_path(people_path, only_path: true)
さらに、URL全体を比較したい場合。
expect(page).to have_current_path(people_url, url: true)
この方法を指摘してくれたTom Walpoleに感謝します。
関連
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み】警告:定数 ::Fixnum は非推奨 新しいモデルを生成するとき
-
[解決済み] Ruby/Rails の「フック」とは何ですか?
-
[解決済み] DestroyとDeleteの違い
-
[解決済み] バリデーションなしで属性を更新する方法
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
-
[解決済み] 属性とカラムの違いは何ですか?
-
[解決済み] Capybaraを使ったドロップダウンでのオプションの選択方法
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyで乱数を取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】修正方法:エラー:'<ファイル名>'にチェックアウトされたコミットがない fatal: コマンドプロンプトで "git add ." を入力するとファイルの追加に失敗する
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み】bcrypt LoadError: Cannot load such file
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] railsでhidden fieldタグを使用する方法
-
[解決済み] Railsコントローラからホスト名を取得する
-
[解決済み] バリデーションなしで属性を更新する方法
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
-
[解決済み] Heroku: 既存のrailsアプリにseeds.rbをプッシュする方法?