2

おそらく問題とは関係ありませんが、文脈上、アプリでdevise_invitable gemを使用しています。invited_userアプリ内の と他のモデルの間の追加の関連付けを保存したいので、invitations_controller.rb の変更を開始しました。

私の問題の根本は、inviting_user他の複数のユーザーを招待することができ、これらの関連付けのそれぞれが User モデルに保存され、フィールドが呼び出されることだと思いますinvited_by_id

と他のモデルとの間に必要な追加の関連付けを作成する前に、次のようinvited_userに Inviteted_user を取得します。id

@invited_user = User.find_by_invited_by_id(current_inviter)

これにより、ユーザー テーブルからレコードが正常に取得されますが、によって招待された最初のcurrent_inviterユーザーのようです。

によって招待された最後のユーザーを取得するようにロジックを変更したいと思いますcurrent_inviter。そのため、私は試しました:

@invited_user = User.find_by_invited_by_id(:last, current_inviter)

残念ながら、次のエラーが返されます。

NoMethodError: undefined method `empty?' for 1:Fixnum

任意の支援をいただければ幸いです。ありがとうございました。

4

1 に答える 1

3

以下を使用できます(Rails 3):

User.where(invited_by_id: current_inviter).last

または、古い構文 (Rails 2) を使用します。

User.find(:last, :conditions => ['invited_by_id = ?', current_inviter])
于 2013-08-02T18:27:49.723 に答える