我的用户对象有一个布尔属性,我想在用户登录时检查它。
这就是我想要做的,但我收到了500错误:
user = User.find_by_email(params['email'])
if user.is_mentor
#do something
end
答案 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。