How to set config.action_controller.default_url_options = {:host = '#''} on per environment basis

前端 未结 7 870
再見小時候
再見小時候 2020-12-12 22:20

Right now I\'m using this which works for the development host, but I have to manually change the {:host => \"\"} code when I move to production.

post.rb



        
7条回答
  •  误落风尘
    2020-12-12 23:07

    Inherit your Application's default_url_options from ActionMailer.

    You want to keep things as DRY as possible so, ideally, you don't want to hard code your host and port in multiple places for the same environment, unless your ActionMailer actually uses a different host and port than the rest of your Application.

    To set the default_url_options for your entire Application, simply add the following line to your config/environment.rb file (changing MyApp to your app's name):

    # Set the default host and port to be the same as Action Mailer.
    MyApp::Application.default_url_options = MyApp::Application.config.action_mailer.default_url_options
    

    This will fix your problem and automatically set your Application's default_url_options to the same as your config.action_mailer.default_url_options:

    $ MyApp::Application.config.action_mailer.default_url_options
    #=> {:host=>"lvh.me", :port=>"3000"}
    
    $ MyApp::Application.default_url_options
    #=> {:host=>"lvh.me", :port=>"3000"}
    

提交回复
热议问题