我有一个页面,我正在检查数据库列public
是否为真,或者用户是否为admin。
<% if @user.public || current_user.admin %>
... users page ...
<% end %>
现在的问题是,如果我没有登录,那么检查current_user.admin
是否为真,所以我得到 NoMethodError
未定义的方法`admin'为nil:NilClass
最合乎逻辑的语法是什么,所以如果我没有登录,我可以检查它是公共的还是管理员,因此它应该指向一个被注意的页面而不是出现此错误。
由于
答案 0 :(得分:3)
在检查current user
是否为admin
之前,您需要检查if @user.public || (current_user && current_user.admin)
是否设置:
if @user.public || current_user&.admin
Ruby 2.3.0 introduced the Safe Navigation operator (&.
).
这使代码更加出色:
{{1}}