我下application_controller.rb
驗證用戶的控制器,然後重定向
class ApplicationController < ActionController::Base
# Return the admin user
def adminLogin
@email = params[:email]
@password = params[:password]
return @email
end
end
下projects_controller.rb
class Admin::ProjectsController < ApplicationController
before_filter :require_login
def require_login
while (adminLogin != 'username')
redirect_to admin_login_path and return
end
end
而這下面的代碼,我試圖讓電子郵件以這種形式,它傳遞給項目控制器,所以當定義電子郵件時,管理員可以登錄。當我按下表單上的提交按鈕時,我可以看到正確的電子郵件通過在表單中使用<%= debug @email %>
發送到項目控制器,但頁面重定向到再次登錄。我怎樣才能去/項目?
[更新]:
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
# Return the admin user
def redirect_unless_admin
@email = params[:email]
password = params[:password]
if (@email == 'username')
redirect_to admin_projects_path
else
redirect_to admin_login_path
end
末 結束
,我需要在我的projects_controller.rb
此方法。這只是打破它,重定向太多
通過使用你的確切代碼,我得到了一個'網站重新路由了太多次',所以我不太確定這是否正確。如果我將你的方法改爲這個'@email ='用戶名' redirect_to(@email =='username'?admin_projects_path:admin_login_path)'這是得到正確的電子郵件和路由到'/ admin/projects',但隨後崩潰再次路由錯誤次數太多 –
很酷,現在就給它一個鏡頭吧。可能試圖讓它太花哨。當所有其他的失敗時,只要去一個很好的舊if/else :) –
請看我上面的更新代碼的註釋^^^ –