【发布时间】:2015-10-02 10:54:47
【问题描述】:
我有一个非常简单的问题,即采用 rails 2 路线并使其与 rails 4 一起使用。rails 2 版本是这样的:
map.token '/sessions/token', :controller => 'sessions', :action => 'token'
我已将其更改为:
get '/sessions/token', to: 'sessions#token', as: '/token'
对于 rails 4。问题是当我转到 /sessions/token 时,它会立即重定向到 /sessions/token/sessions/token 并给出 404
我在令牌方法中添加了byebug,但请求在重定向之前从未到达那里。我很早就在应用程序控制器中添加了它,但我到达了下一个功能停止工作的地步。
请求https://delete-me.domain.org/sessions/token时日志会产生这个:
[delete-me] Started GET "/sessions/token" for 127.0.0.1 at 2015-10-02 05:44:27 -0500
[delete-me] Processing by SessionsController#token as HTML
[delete-me] Redirected to http://delete-me.domain.org/sessions/token/sessions/token
[delete-me] Filter chain halted as :ensure_proper_protocol rendered or redirected
[delete-me] Completed 302 Found in 114ms (ActiveRecord: 5.8ms)
我认为它给出了:ensure_proper_protocol error,因为它从https 重定向到http。我不知道为什么会这样。也许有人遇到过类似的问题,他们可以启发我。
【问题讨论】:
-
重定向与 session_controller.rb 中的这行代码有关:>> 如果我将其注释掉,一切正常...
标签: ruby-on-rails routing