【问题标题】:localhost on rails轨道上的本地主机
【发布时间】:2010-11-14 19:54:06
【问题描述】:

我正在发送一封电子邮件,其中包含指向我的网站的链接。我希望能够在本地对其进行测试,并能够轻松地将脚本移动到不同的主机。

我现在在我的电子邮件中使用以下内容:

  <%= url_for(:host => 'localhost:3000', :controller => "user_activations", :action => "show", :id=>@id, :confirm=>@passcode) %>

这适用于本地测试,但显然会在生产中失败。有没有一种简单的方法可以让 rails(或 ruby​​)检测当前主机是什么?我在想类似 $_SERVER 的 php。

我意识到我可以使用我的环境变量来使用一些逻辑,但我想避免这种情况。

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby localhost


    【解决方案1】:

    我在 environment.rb 中定义了一个常量“HOST”来设置我的主机。或者,您可以使用 request.host 或 request.domain。

    【讨论】:

    • 把 HOST = "localhost:3000" 你的环境/development.rb 和 live 的环境/production.rb 即 HOST = "www.myhost.com"
    【解决方案2】:

    在环境/development.rb 中

    config.action_mailer.default_url_options = { :host => "localhost", :port => 3000 }
    

    在环境/production.rb 中

    config.action_mailer.default_url_options = { :host => "www.xyu.at" }
    

    并使用 rspec-email 进行测试 :)

    【讨论】:

    • 请注意,一个简单的方法是使用 yaml 配置文件,然后只使用 user default_url_options = yml[ENV]
    猜你喜欢
    • 1970-01-01
    • 2011-05-13
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多