【发布时间】:2017-07-16 10:22:19
【问题描述】:
我检查了其他类似的问题,没有一个有相同的问题。简而言之,用户登录后,我的应用程序将重定向到根路径。应该很简单,但由于某种原因,redirect_to 没有返回正确的 url。它在开发模式下工作正常。 我正在尝试学习如何设置生产模式。所以我有一个小应用程序,只有登录/注销,grah.ddns.net 当我对 root_url 执行重定向时,我在浏览器的地址框中得到以下信息:
“http://grah.ddns.net, grah.ddns.net”
我不知道为什么 redirect_to 会返回这样的字符串。
这是我的控制器代码:
def login
user = User.find_by_name(params[:name])
if user.present?
@user = user.authenticate(params[:password])
if @user.present?
session[:userID] = @user.id
session[:userName] = params[:name]
end
end
// responds with "http://grah.ddns.net, grah.ddns.net
redirect_to root_url
end
def logout
session.delete(:userID) if session[:userID].present?
session.delete(:userName) if session[:userName].present?
// Which should I use root_path or root_url?
redirect_to root_path
end
这是我的路线文件:
Rails.application.routes.draw do
root 'main#index'
get 'main/index'
post 'session/login'
get 'session/logout'
end
我在这里看不到任何应该导致我得到的东西。我发现与此远程连接的唯一一件事是:
config.consider_all_requests_local = false
这在开发模式下是正确的,并且有效。我错过了生产模式的哪一部分???有一半想在开发模式下运行……哎呀。
【问题讨论】:
-
您能分享您的路线文件吗?
-
将路由文件添加到问题中。
标签: ruby-on-rails