Ruby on rails `不支持:TrueClass`on Rails模型
我的railsRuby 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>
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”作斗争……这是一个不同的问题:)但是你试过这个吗:太棒了。我去看看。非常感谢。