def getUser(email_address)
User.find_by :email email_address
end
抛出一个语法错误:
requests_controller.rb:24: syntax error, unexpected tIDENTIFIER, expecting keyword_end
其中该代码(在相同的位置/功能实现,而不会改变任何东西)作品:
def getUser(email_address)
users = User.all
found_user = nil
users.each do |user|
if user.email == email_address
found_user = user
break
end
end
found_user
end
很明显,第二个实施是可怕的。随着用户数量的增加,它将减速并停止。但我不明白为什么第一个 - 这应该是正确的做法 - 甚至不会编译。
在调用方法之前加载类时会出现语法错误消息。不平衡的“if”/“end”没有问题,因为唯一改变的行是显示的行。
我不明白为什么。我已经尝试过很多变体,但没有一个能够工作。
据我所知,应该不需要发布更多的代码,但如果真的有人想要我,我会的。请注意,这不在设备控制器内,它只是我的其他应用程序控制器之一。但是,User.all工作,所以为什么User.find_by甚至没有编译?
这page from the ActiveRecord docs建议它应该工作。负载tutorials and help pages such as this one表明确切的语法。 Devise必须为ActiveRecord API做一些非常令人惊讶的事情来全面地解决这个问题。
任何人都知道发生了什么事?
看起来不错。谢谢你。我没有尝试过,因为我设法让find_by像下面那样工作。 – Sez