在我的 Ruby on Rails 应用程序中,当用户的身份验证成功时,我想根据他们所属的帐户将他/她发送到特定的主页。
我尝试在我的 Sessions 控制器中添加一个“if”子句,如下所示:
def create
if user = User.authenticate(params[:login], params[:password])
session[:user_id] = user.id
if user.account.name == "X"
redirect_to Xhome_path, :notice => "Logged in successfully"
else
redirect_to home_path, :notice => "Logged in successfully"
end
else
flash.now[:alert] = "Invalid login/password combination"
render :action => 'new'
end
end
复制 routes.rb 中已经存在的以下行:
match '/home' => "users#home", :as => "home"
我添加了这个:
match '/Xhome' => "users#Xhome", :as => "Xhome"
这不起作用并给出以下结果:
如果 user.account.name 'X' 的用户登录,浏览器会显示以下错误消息:
会话控制器中的名称错误#create
未初始化的常量 SessionsController::Xhome_path
但是,一旦此用户通过身份验证,键入 mydomain.com/Xhome URL 效果很好,并带来了预期的 Xhome 视图,这似乎证明路由方面没有问题。
你知道这个 NameError 问题可能来自哪里吗?为什么我不能像使用 home_path 一样使用 Xhome_path ?