Rails find_by最后一条记录的选项语法

时间:2013-08-02 18:23:44

标签: ruby-on-rails devise-invitable

它可能与此问题无关,但对于上下文我在我的应用中使用了devise_invitable gem。我已经开始修改invitations_controller.rb,因为我想在我的应用中保存invited_user和其他模型之间的其他关联。

我认为我的问题的根源是inviting_user可以邀请多个其他用户,并且这些关联中的每一个都保存在用户模型中,并带有一个名为invited_by_id的字段

invited_user和我的其他模型之间建立额外的所需关联之前,我使用以下内容检索invite_user id

@invited_user = User.find_by_invited_by_id(current_inviter)

这确实从User表中成功检索了一条记录,但它似乎是current_inviter邀请的第一个用户。

我想更改逻辑,以便检索current_inviter邀请的 last 用户。因此,我尝试了:

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

但不幸的是,它返回以下错误:

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

感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用以下(Rails 3):

User.where(invited_by_id: current_inviter).last

或使用旧语法(Rails 2):

User.find(:last, :conditions => ['invited_by_id = ?', current_inviter])