3

ユーザーがログインしていない場合にbefore_filterリダイレクトされることを確認するために、統合テストを実行しています。どこかに見逃した設定がある場合。ありがとう!root_pathhttp://www.example.com/Redirected tolog/test.log

ログ/test.log

Started PUT "/users/980190963" for 127.0.0.1 at 2012-07-29 13:31:39 -0700
Processing by UsersController#update as HTML
  Parameters: {"user"=>{"password"=>"[FILTERED]"}, "id"=>"980190963"}
Redirected to http://www.example.com/
Filter chain halted as :reject_if_logged_out rendered or redirected
Completed 302 Found in 1ms (ActiveRecord: 0.0ms)

users_controller.rb

...
before_filter :reject_if_logged_out, only: [:update]
...
private
def reject_if_logged_out
  redirect_to root_path unless @current_user
end
4

2 に答える 2

2

奇妙なことに、私のアプリの一部だけがこれを行うようです。しかし、これは以前にここで回答されています。これはデフォルトであり、変更方法は次のとおりです。レールでテストするためにデフォルトの「www.example.com」ドメインを変更するにはどうすればよいですか?

于 2012-07-29T21:21:46.380 に答える
1

これは、cucumber や他の多くのレール用テスト フレームワークが使用するライブラリである capybara のデフォルトであるためです。参照lib/capybara.rb:

Capybara.configure do |config|
  # ...
  config.default_host = "http://www.example.com"
  # ...
end

したがって、構成で他に何も指定しない場合、のデフォルト値は@request.hostですwww.example.com

于 2012-07-29T21:26:30.280 に答える