0
我试图实现一个登录表单,但我的路由似乎是错误的。 当身份验证失败时,应用程序将重定向到subdomain.domain.com/login,但它只应该再次呈现登录页面(只有不带“/ login”的subdomain.domain.com)。Rails:登录表单的正确路由
视图/登录/ index.html中
<%= form_tag(check_login_path, :method => "post") do %>
... form fields
<% end %>
的routes.rb
constraints(Subdomain) do
match '/' => 'login#index', :as => :login
match '/login' => 'login#check', :as => :check_login
match '/dashboard' => 'dashboard#index', :as => :dashboard
end
login_controller.rb
class LoginController < ApplicationController
def index
# some index logic
end
def check
# authenticate with mite.yo.lk account login
Mite.account = params[:domain]
Mite.authenticate(params[:email], params[:password])
if Mite.validate
redirect_to dashboard_path
else
flash[:error] = "not valid"
render :template => 'login/index'
end
end
end
Aaaah肯定。谢谢:)顺便说一句:这是一个好习惯吗?或者我应该实施这种行为吗? – Slevin
我刚刚添加了一个替代方案。通常,最佳做法是尽可能使用资源,并且如果不是至少指定HTTP动词而不是“匹配”(它将匹配任何HTTP动作)。 –
非常感谢! – Slevin