1

我在 Rails 3 中使用会话时遇到了一点麻烦。我将首先详细介绍我的一些工作环境。

我有一个托管在 heroku 上的应用程序,假设您的 URL 是http://myapp.herokuapp.com

我有一个CNAME指向 heroku 的域,假设它是http://www.myapp.com

当我从我的应用程序向客户端发送一封电子邮件时,它包含一个指向应用程序受限区域的 url,那么完成的方式是:

http://www.myapp.com -> 电子邮件 -> http://www.myapp.com/secret

但是如何将用户重定向到http://www.myapp.com/log_in的秘密区域

这就是问题所在:Rails 保存了应用程序的实际 URL,在本例中为http://myapp.herokuapp.com,登录后它将用户重定向到http://myapp.herokuapp.com/secret!我不想要它,希望它继续在http://myapp.com领域。

有没有办法做到这一点?

4

1 回答 1

1

尝试这个 :

redirect_to secret_path( host: 'myapp.com' )

或者

redirect_to url_for( action: 'my_action', host: SOME_DEFAULT_HOST ) 

编辑

我不确定我是否很好地理解了您的问题-您的意思是您将 URI 保存在数据库中吗?

恕我直言,保存硬编码的网址可能会很麻烦。

如果可能,请尝试保存解构的 URI 部分而不是完整的字符串路径,以便url_for稍后将 args 发送到或任何路径助手(并根据需要对其进行调整,或者立即更新整个表以更改主机)。

如果没有,您始终可以使用您选择的任何库解析保存的 URI,然后在重定向之前对其进行调整

于 2013-02-13T13:06:08.770 回答