rails 3中的会话重定向问题

时间:2013-02-13 11:55:14

标签: ruby-on-rails ruby session redirect heroku

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

我在heroku上托管了一个应用程序,假设您的网址为 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 ,登录后会将用户重定向到 {{3} } 的!我不想要它,希望它继续在 http://myapp.herokuapp.com/secret领域。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

试试这个:

redirect_to secret_path( host: 'myapp.com' )

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

修改

我不确定我是否理解你的问题 - 你的意思是保存数据库中的URI吗?

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

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

如果没有,您可以随时使用您选择的任何lib解析保存的URI,然后在重定向之前调整它