Rails为最后一条记录查找选项语法(_by)



这可能与问题无关,但就上下文而言,我在应用程序中使用了devise_invitable gem。我已经开始修改invitations_controller.rb,因为我想在我的应用程序中保存invited_user和其他模型之间的额外关联。

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

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

@invited_user = User.find_by_invited_by_id(current_inviter)

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

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

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

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

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

如有任何协助,我们将不胜感激。非常感谢。

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

User.where(invited_by_id: current_inviter).last

或者使用旧语法(Rails2):

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

最新更新