Rails current_user控制器检查然后呈现略有不同的视图

时间:2013-01-01 22:36:00

标签: ruby-on-rails ruby-on-rails-3

我只想要最简单的解决方案来检查用户是否是当前用户,并根据每次渲染视图略有不同的答案。

我在每个用户的/users/:id都有一条路线,该路线转到show的{​​{1}}

控制器

users_controller

我想在很多地方更改 def show @user = User.find(params[:id]) respond_to do |format| format.html #show.html.erb end end 文件。我每次都可以尝试show.html.erb,但我认为这会造成冗长的代码或许多偏见的混乱。

我也可以尝试创建第二个视图,但我不知道我是否在这里有效地工作:

控制器

<% if @user == current_user %>

比上述更有效的解决方案?

1 个答案:

答案 0 :(得分:0)

当用户查看其他用户的个人资料时,这将呈现show.html.erb showself.html.erb在显示查看自己的个人资料时:

  def show    
    @user = User.find(params[:id])
    if @user == current_user
        render "showself"
    end
  end