Ruby on Rails:未定义的方法,检查boolean if true语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby on Rails:未定义的方法,检查boolean if true语句相关的知识,希望对你有一定的参考价值。
我有一个页面,我正在检查数据库列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 (&.
).
Updated answer
if @user.public || current_user&.admin
这使代码更好:
qazxswpoi
以上是关于Ruby on Rails:未定义的方法,检查boolean if true语句的主要内容,如果未能解决你的问题,请参考以下文章
Ruby on Rails:高级搜索,nil:Nilclass 的未定义方法 []
Base64 编码的字符串到文件(Ruby on Rails) - 未定义的方法“解包”错误
Ruby on Rails Simple_form_for的未定义方法
Ruby on Rails - 未定义的方法`split'代表nil:StocksController中的NilClass / NoMethodError #search
nameerror 未定义的局部变量或方法 `log_out' 你的意思是? logout_url ruby on rails