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

时间:2017-07-04 23:35:02

标签: ruby-on-rails ruby

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

这就是我想要做的,但我收到了500错误:

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

3 个答案:

答案 0 :(得分:2)

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

user = User.find_by_email params['email']

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

在这里,user.present?检查user是否不等于nil,如果没有找到用户,将会是这样。

此外,方法调用结束时的?表示该方法返回一个布尔值。如果方法是用户定义的,那么您应该在方法调用中包含问号:

def is_mentor?
    # do something
end

答案 1 :(得分:0)

您需要添加一项检查,看看您是否找到了用户

<h2>Comments</h2>
<% if @article.comments.any? %>

<%= @article.comments.each do |comment| %>

<p>
  <strong>Commenter:</strong>
  <%= comment.commenter %>
 </p>

 <p>
  <strong>Comment:</strong>
  <%= comment.comment %>
 </p>

 <% end %>
<% end %>

答案 2 :(得分:0)

您只需先检查用户是否存在:

if user && user.is_mentor?
    # do something
end
如果Rails没有找到用户,

用户将为nil和false。