【发布时间】:2013-11-27 04:42:54
【问题描述】:
我正在关注 Michael Hartl 的 Ruby on Rails 教程。我已经到了第9章。有些代码我看不懂。请参见下面的第 4 行,为什么我们需要在 current_user?(user) 前面加上 ! 才能使其成为 !current_user?(user)难道我们不需要 true && true 来传递 if 语句,以便管理员可以看到删除操作。
如果用户登录并且是管理员,那么current_user.admin? == true、current_user?(user) = true 和!current_user?(user) 将为 false,并且 if 语句不会通过。
_user.html.erb
<li>
<%= gravatar_for user, size: 52 %>
<%= link_to user.name, user %>
<% if current_user.admin? && !current_user?(user) %>
| <%= link_to "delete", user, method: :delete,data: { confirm: "You sure?" } %>
<% end %>
</li>
sessions_helper.rb
def current_user=(user)
@current_user = user
end
def current_user
remember_token = User.encrypt(cookies[:remember_token])
@current_user ||= User.find_by(remember_token: remember_token)
end
def current_user?(user)
user == current_user
end
提前致谢。
【问题讨论】:
标签: ruby-on-rails-4 railstutorial.org ruby-2.0