【问题标题】:Rails find_by option syntax for last record最后一条记录的 Rails find_by 选项语法
【发布时间】:2013-08-02 18:23:44
【问题描述】:

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

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

invited_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

感谢您提供任何帮助。谢谢。

【问题讨论】:

    标签: ruby-on-rails devise-invitable


    【解决方案1】:

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

    User.where(invited_by_id: current_inviter).last
    

    或使用旧语法(Rails 2):

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-02
      • 2016-03-31
      • 2011-08-30
      • 2020-04-09
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多