0

多くのグーグルとコンソールテストの後、私はレール内のアレイについて助けが必要です。メソッドでは、特定の要件に一致するすべての行をデータベースで検索し、それらを変数に入れます。次に、その配列でそれぞれを呼び出してループします。私の問題は、最初の検索で1つの行だけが一致し、.eachがnomethoderrorを引き起こすことがあることです。

複数の行があり、1つの行しかない両方の状況でクラスを呼び出しました。複数の行がある場合、それらをダンプする変数はクラス配列のものです。行が1つしかない場合は、モデルのクラスです。

検索にオブジェクトのインスタンスが1つしかない場合に、各ループを中断しないようにするにはどうすればよいですか?たくさんの条件付きコードと一緒に何かをハックすることはできますが、ここでは本当に単純なものは見られないように感じます。

ありがとう!

以下のリクエストされたコード

@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 に答える