【问题标题】:Ruby on Rails: undefined method `user' for #<ActiveRecord::Relation::ActiveRecord_Relation_User:0x4451148>Ruby on Rails:#<ActiveRecord::Relation::ActiveRecord_Relation_User:0x4451148> 的未定义方法“用户”
【发布时间】:2023-03-31 02:58:02
【问题描述】:

代码如下。用户是我数据库中的名称,但它说它是一个未定义的方法,而不应该是。它只是我数据库中的一个字符串值。我查看了有关此错误的所有其他帖子,但他们的解决方案对我不起作用。 (顺便说一句,我使用了脚手架,所以我不知道这是否会影响任何事情)

  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

【问题讨论】:

    标签: ruby-on-rails ruby scaffold


    【解决方案1】:

    这一行:

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

    应该是:

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

    没有.first,你得到的是一个关系对象,它可以用来将更多的.where 子句链接到它(或类似的方法)。您必须在其上使用.firsteach 之类的东西才能真正从数据库中获取记录。

    【讨论】:

      猜你喜欢
      • 2013-08-06
      • 1970-01-01
      • 2021-09-24
      • 2013-09-25
      • 2015-08-09
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多