仅在该用户登录时显示编辑用户链接

时间:2012-11-05 06:11:02

标签: ruby-on-rails-3 authentication

我有一个用户资源,我只想在该用户登录时在show.html.erb文件中显示“编辑”链接。请参阅屏幕截图。

Here is a list of users. Notice in the top right that Roger Sterling is logged in.

以下是用户列表。请注意右上角Roger Sterling已登录。

But if I click on Don Draper, the show.html.erb file displays the "Edit" button. I only want that to appear for Roger Sterling, in this case.

但如果我点击Don Draper,show.html.erb文件会显示“编辑”按钮。在这种情况下,我只想让Roger Sterling出现。

我正在使用Devise进行身份验证。有关如何实现这一目标的任何想法?如果您需要查看任何可用代码,请告诉我们。

2 个答案:

答案 0 :(得分:3)

您可以查看current_user并显示用户,如果它们相同,则链接“编辑”'会显示。您可以定义一个这样的辅助方法:

def correct_user?(user)
  user == current_user
end

在UsersController的show动作中将有:

def show
  @user = User.find(params[:id])
  ...
end

在您看来,您可以查看:

<% if correct_user?(@user) %>
  <%= link_to 'Edit', @user %>
<% end %>

答案 1 :(得分:2)

哈。好,我知道了。

以下是show.html.erb文件中的循环:

<% if (@user.name == current_user.name) %>
    <%= link_to 'Edit', edit_user_registration_path(@user) %> 
<% end %>  

辅助方法:

def correct_user
    user == current_user
end

感谢你朝着正确的方向前进!

相关问题