我正在尝试查看我刚发现的用户是否已属于我的小组。
事情是;如果它存在,则给出true
。如果它不存在,则说Couldn't find User with id=2 [WHERE "groups_users"."group_id" = ?]
。在那种情况下,为什么我没有得到false
?
email = params[:email]
if !email.blank?
userExists = User.find_by_email(email)
if userExists.blank?
#User doesn't exist
else
#User does exist
@userIsInGroup = !@group.users.find(userExists).blank?
end
end
使用@userIsInGroup = @group.users.find(userExists)
代替IF并不能解决问题。
答案 0 :(得分:1)
if userExists.blank?
#User doesn't exist
else
#User does exist
@userIsInGroup = !@group.users.find(userExists).blank?
end
如果记录不存在,则ActiveRecord
返回
ActiveRecord :: RecordNotFound:找不到ID = number
的用户
@userIsInGroup = !@group.users.find_by_id(userExists).blank?
find_by_column_name
返回nil
答案 1 :(得分:0)
我想你想要@userIsInGroup
中的布尔值,如果是这样的enumerable
类的include
方法如下
已更改
@userIsInGroup = @group.users.find(userExists).blank?
要
@userIsInGroup = @group.users.include?(userExists)
答案 2 :(得分:-1)
您可以使用
调用它if User.exists?(email: params[:email])
do stuff
else
don't do stuff
end