Ruby on Rails: undefined method `user' for #<ActiveRecord::Relation::ActiveRecord_Relation_User:0x4451148>

StackOverflow https://stackoverflow.com/questions/21752407

  •  11-10-2022
  •  | 
  •  

Frage

The code is below. User is the name in my database, but it is saying it is an undefined method when it should not be. It is just a string value in my database. I have looked at all the other posts about this error but their solutions did not work for me. (I used scaffold btw so I don't know if that affects anything)

  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
War es hilfreich?

Lösung

this line:

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

should be:

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

without the the .first what you get is a relation object, which can be used to chain further .where clauses to it (or similar methods). You must use .first or something like each on it to actually get records from the database.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top