简体   繁体   中英

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

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM