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