ruby-on-rails-3 - 仅当用户登录时显示编辑用户链接

标签 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 文件会显示“编辑”按钮。在这种情况下,我只希望罗杰·斯特林出现这一点。

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

最佳答案

您可以检查当前用户和用户是否显示,如果它们相同,将显示“编辑”链接。您可以像这样定义一个辅助方法:

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 %>

关于ruby-on-rails-3 - 仅当用户登录时显示编辑用户链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13226832/

相关文章:

ruby-on-rails - 使用 Prawn 添加图像,得到错误:Prawn::Errors::UnsupportedImageType,PNG 使用不支持的隔行扫描方法

ruby-on-rails - Rails - Paperclip - 如何在保存前检查图像尺寸

android - 此应用未配置 Android key 哈希。 - 使用 Facebook SDK 登录

authentication - 在客户端第一次连接到服务器时,VPN 是否可能出现 "man in middle"?

ruby-on-rails - Rails 3.1.0.rc5 Rake 问题

sql - 删除并重新创建单个表(在 Heroku 上)

python - Django - 验证错误 "value must be an integer"

node.js - 如何在node.js Passport 中通过twitter登录后使用访问 token 对用户进行身份验证

ios 在 KeyChain 中存储登录 token 无法检索,很少且随机,但始终如一

ruby-on-rails - 在浏览器中渲染模板并更改 url 字符串?