工作,我有这样的方法:导轨设计sign_in不会对重定向
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
if params[:mypmnode]
session[:return_to] = projects_pmnode_path(params[:mypmnode])
sign_in(@user)
end
format.html { redirect_to(session[:return_to], :notice => 'User was successfully updated.') }
format.xml { head :ok }
else
@create_company = true if params[:user][:company_id].blank? and params[:user][:company_attributes].length > 0
@create_department = true if params[:user][:department_id].blank? and params[:user][:department_attributes].length > 0
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
的想法是,如果用户更新,他会自动登入和重定向到需要身份验证的页面。
在这个页面中,我有:before_filter:authenticate_user!
这对重定向不起作用。
如果我然后转到另一个使用此sign_in函数的页面,则用户将正确登录。
任何想法为什么重定向不起作用?谢谢!
UPDATE:
,以使其更清晰,我插入第二个页面代码(控制器):
class PmnodesController < Projects::BaseController
before_filter authenticate_user!
def index
@pmnodes = Pmnode.all
respond_to do |format|
format.html
end
end
你的意思是用户在更新属性后应该重定向到login(sign_in)页面? –
不,我试图让他自动登录,然后将他重定向到私人页面,而无需手动登录。 – ndemoreau