0

经过大量谷歌搜索和控制台测试后,我需要一些有关 rails 数组的帮助。在一种方法中,我在数据库中搜索符合特定要求的所有行并将它们放入变量中。接下来,我想在该数组上调用每个并循环遍历它。我的问题是,有时在初始搜索中只有一行匹配,并且 .each 会导致 nomethoderror。

我在两种情况下都打电话给班级,其中有多行且只有一行。当有多行时,我将它们转储到的变量是类数组。如果只有一行,则为模型的类。

当我的搜索中只有一个对象实例时,我如何才能拥有一个不会中断的 each 循环?我可以用大量条件代码破解一些东西,但我觉得我在这里没有看到真正简单的东西。

谢谢!

要求的代码如下

@user = User.new(params[:user])  
if @user.save      
  #scan the invites dbtable and if user email is present, add the new uid to the table
    @talentInvites = TalentInvitation.find_by_email(@user.email)
    unless @talentInvites.nil?
      @talentInvites.each do |tiv|
        tiv.update_attribute(:user_id, @user.id)
      end  
    end
....more code...
4

1 回答 1

2

使用find_all_by_email,它总是会返回一个数组,即使是空的。

@user = User.new(params[:user])  
if @user.save      
  #scan the invites dbtable and if user email is present, add the new uid to the table
    @talentInvites = TalentInvitation.find_all_by_email(@user.email)
    unless @talentInvites.empty?
      @talentInvites.each do |tiv|
        tiv.update_attribute(:user_id, @user.id)
      end  
    end
于 2012-04-08T20:47:07.690 回答