我在rails user.rb
模型中有以下方法:
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
当我尝试更新user
时,我在指定的行上收到unsupported: TrueClass
错误。我对TrueClass
错误不太熟悉,但感觉它是由each
引起的。任何人都可以帮我摆脱这个错误吗?
答案 0 :(得分:2)
@users = User.where(first_name == self.first_name)
你是说吗?
@users = User.where(:first_name => self.first_name)
您拥有的第一行将评估为
@users = User.where(true)
然后Rails会感到困惑,为什么你试图找出“真实”的用户...可能会导致你得到的错误。