单击“主页”时重定向以显示用户配置文件而不是默认主页

时间:2012-06-27 16:42:08

标签: ruby-on-rails-3 redirect ruby-on-rails-3.2 railstutorial.org

这个问题源自使用Michael Hartl的Rails教程创建的示例Web应用程序,尽管它不是作者建议的练习之一。

在许多社交网站上,当点击“主页”(例如在网站徽标上)时,用户将被重定向到他们的个人资料而不是默认主页。我想知道如何在教程应用程序中完成此任务。

在教程应用中,“主页”视图被视为“静态”,并由显示的static_page_controller呈现:

def home
end 

当我尝试添加以下内容时:

def home
  if signed_in?
  redirect_to @user
  end
end

我收到错误“无法重定向到nil”。我原以为@user在所有控制器之间共享(因为signed_in是......在user_controller@user = User.find(params[:id]))。如何修改控制器,以便在检测到用户已登录时,将显示配置文件而不是主页?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

signed_in?方法不使用current_user代替@user

如果是这样,您只需更改行

即可
redirect_to @user

redirect_to current_user