Ruby on rails `不支持:TrueClass`on Rails模型

Ruby on rails `不支持:TrueClass`on Rails模型,ruby-on-rails,Ruby On Rails,我的railsuser.rbmodel中有以下方法: before_save :set_username private def set_username @users = User.where(first_name == self.first_name) same_first_name_array = [] @users.each do |u| <<<<<<<ERROR CALLED ON THIS LINE>

我的rails
user.rb
model中有以下方法:

before_save :set_username

  private

  def set_username
    @users = User.where(first_name == self.first_name)
    same_first_name_array = []
    @users.each do |u|  <<<<<<<ERROR CALLED ON THIS LINE>>>>>>>>
      same_first_name_array << u.first_name
    end

    if same_first_name_array.size == 0
      self.username = first_name
    else
      self.username = first_name + " the " + ordinalize(same_first_name_array.size + 1)
    end
  end
保存前:设置用户名
私有的
def set_用户名
@users=User.where(first\u name==self.first\u name)
相同的名称数组=[]
@用户。每个人都做| u |>
相同的\u首\u名称\u数组
你是说

@users = User.where(:first_name => self.first_name)
您拥有的第一行将计算为

@users = User.where(true)
然后Rails会感到困惑,为什么您要在“true”。。。可能是你感染的病毒的原因

你是说

@users = User.where(:first_name => self.first_name)
您拥有的第一行将计算为

@users = User.where(true)

然后Rails会感到困惑,为什么您要在“true”。。。可能是您遇到的错误的原因。

@users=User.where(first\u name==self.first\u name)
问题在那一行,您的查询不对
@users=User.where(first\u name==self.first\u name)
问题在那一行,您的查询不对是的,我肯定是这个意思!非常感谢。现在我正在if/else的最后一行与未定义的方法“ordinalize”作斗争……这是一个不同的问题:)但是你试过这个吗:太棒了。我去看看。非常感谢。是的,我肯定是这个意思!非常感谢。现在我正在if/else的最后一行与未定义的方法“ordinalize”作斗争……这是一个不同的问题:)但是你试过这个吗:太棒了。我去看看。非常感谢。