2013-12-19 40 views
1

我想了解root_url的協議和主機組件是如何確定的,包括與環境有關的任何變化(例如開發vs.測試與生產)。如何確定協議(例如http和https)以及Rails root_url的主機組件?

默認似乎是「http」和「www.example.com」,但我無法找到Rails中指定的位置以及是否可以配置它。

的問題出現在試圖回答https://stackoverflow.com/questions/20688059/ruby-on-rails-with-rspec-ssl-issue

無我見過相關的問題(例如How to set root_url)解決這一問題的上下文。

回答

1

Rails根據傳入的請求標頭自動計算協議和域。

您需要手動配置它們的唯一時間是,如果您需要將鏈接放入由您的應用程序生成的電子郵件中,因爲在ActionMailer內部深處,它無法再訪問請求標頭信息。那麼,你只需要在你的每個config/environments/* .rb文件中設置config.action_mailer.default_url_options = ...

您在測試中看到www.example.com的原因是因爲測試會將標頭設置爲。你不需要改變它。

+0

所以你說'root_url'是指最近接收到的請求?你能解釋爲什麼'root_url'爲什麼在一個空的rspec測試中有一個值(也就是僅僅檢查'root_url'而不執行任何請求)? –

相關問題