4

テストでhttp://www.example.com使用するたびに取得します。root_url

これは開発で正常に機能します。config/environments/development.rbにこれがあります。

Rails.application.routes.default_url_options[:host]= 'localhost:3000'

ただし、これを追加してもconfig / environment/test.rbでは機能しません。localhost:3000テスト環境でホストとして使用するには、何を追加する必要がありますか?

4

1 に答える 1

5

に依存するコードをテストするとdefault_url_options、あらゆる種類の問題が発生します。例については、このスレッドとこの問題を参照してください。

ActionDispatch::Routing::RouteSetテストにパッチを適用して、レールに必要なオプション(私の場合)のデフォルトを含めるように強制することで、問題を解決しましたlocale。詳細については、上記にリンクされているgithubの問題の私の回答を参照してください。

host同じアプローチを使用してオプションをオーバーライドするには:

class ActionDispatch::Routing::RouteSet
  def url_for_with_host_fix(options)
    url_for_without_host_fix(options.merge(:host => 'localhost:3000'))
  end

  alias_method_chain :url_for, :host_fix
end

これをのファイルに入れてsupport、トリックを実行する必要があります。

于 2012-11-07T03:39:39.817 に答える