使用 restful_authentication 生成的代码,我们通常会在注册和激活邮件中获取 'localhost' 作为 URL。我正在尝试创建这样的东西:
def signup_notification(user, host)
setup_email(user)
@subject += 'Please activate your new account'
@body[:url] = "http://#{host}/activate/#{user.activation_code}"
end
但是,由于传递邮件的实际调用是在观察者中,我不能这样做:
UserMailer.deliver_signup_notification(user, request.host_with_port)
由于请求方法在模型中不可用。这样做的最佳方法是什么?
我考虑过将每个域的 URL 存储在 YAML 文件中,然后在启动时加载它,但是端口可能会改变,所以它不起作用。
或者,我考虑在某个地方创建一个静态类变量,该变量在加载应用程序时设置,但我不知道如何去做。请求方法是否可用于初始化程序?