【问题标题】:Redirect_to not able to redirect to root url Rails 2.3.18Redirect_to 无法重定向到根 url Rails 2.3.18
【发布时间】:2016-02-17 10:15:49
【问题描述】:

我是 Rails 新手,注销用户后无法重定向到根 URL,我检查了许多解决方案,但都有相同的方法 redirect_to,当我使用 redirect_to 重定向到根 URL 时,它添加了相同的网址两次。请看下面的代码。

def user_logout
    redirect_to URI(request.env["HTTP_REFERER"]).host
end

它工作正常,但添加了两次根 URL,例如 test.comtest.com

【问题讨论】:

  • 你为什么使用 Rails 2.3.18?它很古老,您应该从 Rails 4 开始,并确保您遵循过去几年编写的教程/材料。
  • 可能是遗留项目
  • 请用routes.rb代码更新问题。
  • 为什么不能直接使用root_path
  • @pavan map.login 'login/user_logout', :controller => 'login', :action => 'user_logout'

标签: ruby-on-rails ruby ruby-on-rails-2


【解决方案1】:

通常您应该使用 root_path 路由辅助方法来获取 cmets 中建议的根路径。

如果你想解析一个url,你需要先调用URI的parse方法,然后才能向uri对象请求一个属性。

URI.parse("https://www.google.com/some/path").host

uri = URI.parse("https://www.google.com/some/path")
uri.host   # => "www.google.com"
uri.path   # => "/some/path"
uri.query  # => nil
uri.scheme # => "https"
uri.port   # => 443

【讨论】:

  • 你能告诉我为什么根 url 出现两次吗??
  • 我已经检查了这段代码和相同的问题,并且在我的控制器 URI(request.env["HTTP_REFERER"]).host 中使用了相同的代码
  • 对不起,我试着弄明白了。但我不能。您使用哪个红宝石版本?如果使用 parse 方法会发生什么?
  • 我正在使用 ruby​​-1.9.3-p551 其实它是旧项目,由于许多冲突我无法将其升级到新版本
  • 您是否尝试过 root_path 助手?这将是最好和最简单的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
  • 2018-02-03
  • 2019-04-03
  • 2014-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多