繁体   English   中英

如何在Ruby中访问对象的属性

[英]How can I access an object's property in Ruby

我的用户对象具有一个布尔属性,我想在用户登录时检查它。

这是我正在尝试做的,但是出现500错误:

user = User.find_by_email(params['email'])
if user.is_mentor
    #do something
end

您需要检查是否确实有一个通过电子邮件params['email']找到的用户:

user = User.find_by_email params['email']

if user.present? && user.is_mentor?
    # do something
end

在这里, user.present? 检查user是否不等于nil(如果未找到用户,则为nil)。

另外, ? 在方法调用的末尾表示该方法正在返回布尔值。 如果方法是用户定义的,则还应该在方法调用中包含问号:

def is_mentor?
    # do something
end

您需要添加检查以查看是否找到了用户

if user.is_a?(User) && user.is_mentor

您只需要检查用户首先存在:

if user && user.is_mentor?
    # do something
end

如果Rails找不到用户,则user为nil和false。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM