2014-02-13 3 views
0

코드는 다음과 같습니다. User는 내 데이터베이스의 이름이지만, 그렇게해서는 안되는 경우는 정의되지 않은 방법이라고 말하고 있습니다. 그것은 내 데이터베이스의 문자열 값입니다. 이 오류에 대한 다른 모든 게시물을 살펴 보았지만 솔루션이 나에게 적합하지 않았습니다.Ruby on Rails : # <ActiveRecord :: Relation :: ActiveRecord_Relation_User : 0x4451148>에 대한 정의되지 않은 메소드`user '

the_user = self.where(user: user, password:password) 

가 있어야한다 : 당신이 무엇을 얻을하여 .first없이

the_user = self.where(user: user, password:password).first 

def self.login(user, password) 
    the_user = self.where(user: user, password:password) 
    if the_user.empty? 
     return ERR_BAD_CREDENTIALS 
    else 
     return the_user.user 
    end 
    end 

답변

3

이 줄 (나는 아무것도 영향을 미치는 경우 내가 모르는 BTW 비계를 사용) 는 관련 객체이므로 더 이상 .where 절을 체인에 연결하는 데 사용할 수 있습니다 (또는 유사한 메서드). 실제로 데이터베이스에서 레코드를 얻으려면 .first 또는 each과 같은 문자를 사용해야합니다.