注册表单并登录表单不会重定向到同一页面

时间:2014-12-18 15:50:45

标签: ruby-on-rails redirect

我遇到了一个小问题,我只是手动配置了用户身份验证过程,并通过一对一的关系向用户添加了配置文件。所有这一切都运行正常,但我有这个奇怪的问题,登录和唱歌形式没有重定向到同一页面。登录页面重定向到用户个人资料/users/:user_id/profile,而登录表单重定向到/users/:user_id,两个链接都正常工作,因为我们的路由文件都支持它们。我希望两者都重定向到同一页/users/:user_id/profile

我的控制器

在用户控制器中创建操作

def create
  @user = User.new(params[:user])
  if @user.save
    sign_in @user
    flash[:success] = "Welcome to the app"
    redirect_to user_profile_path(@user, @profile)
  else
    flash[:error_message] 
    render 'new'
  end
end

此方法效果很好,并从注册表单重定向到/users/:user_id/profile

在会话控制器中创建操作

def create
  user = User.find_by_email(params[:session][:email].downcase)
  if user && user.authenticate(params[:session][:password])
     sign_in user
     redirect_back_or_to user
  else
     flash.now[:error] = 'Invalid email / password combination'
     render 'new'
  end 

会话创建方法可以使用并重定向到/users/:user_id,但当行redirect_back_or_to user更改为redirect_to user_profile_path(@user, @profile)时,会抛出错误No route matches {:action=>"show", :controller=>"profiles", :user_id=>nil, :format=>nil}

感谢任何帮助,谢谢。

0 个答案:

没有答案