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