我有一个用户资源,我想仅在该用户登录时在 show.html.erb 文件中显示“编辑”链接。请参阅屏幕截图。
这是用户列表。请注意右上角的 Roger Sterling 已登录。
但是如果我点击 Don Draper,show.html.erb 文件会显示“编辑”按钮。在这种情况下,我只希望出现在 Roger Sterling 身上。
我正在使用设计进行身份验证。关于如何做到这一点的任何想法?如果您需要查看任何可用代码,请告诉我。
我有一个用户资源,我想仅在该用户登录时在 show.html.erb 文件中显示“编辑”链接。请参阅屏幕截图。
这是用户列表。请注意右上角的 Roger Sterling 已登录。
但是如果我点击 Don Draper,show.html.erb 文件会显示“编辑”按钮。在这种情况下,我只希望出现在 Roger Sterling 身上。
我正在使用设计进行身份验证。关于如何做到这一点的任何想法?如果您需要查看任何可用代码,请告诉我。
您可以检查 current_user 和显示的用户,如果它们相同,将显示链接“编辑”。你可以像这样定义一个辅助方法:
def correct_user?(user)
user == current_user
end
在您的 UsersController 的显示操作中将具有:
def show
@user = User.find(params[:id])
...
end
在您看来,您可以检查:
<% if correct_user?(@user) %>
<%= link_to 'Edit', @user %>
<% end %>
哈。好,我知道了。
这是 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
感谢您朝着正确的方向推动!