使用外键获取第一条记录

时间:2018-03-29 11:02:02

标签: ruby-on-rails activerecord model

我有User模型和Deposit模型。

一位用户has_many :deposits和一位存款belongs_to :user

现在,存款表中有user_id作为外键。 现在,我如何确定特定存款是特定用户的首次存款?

实际上我需要在Deposit模型中编写一个实例方法来识别它。

请帮我解决这个问题。提前谢谢!

4 个答案:

答案 0 :(得分:3)

如果您想检查存款是现在唯一的存款:

def only_one?
  user.deposits.count == 1
end

答案 1 :(得分:1)

您可以轻松识别created_at属性。

离。

user.deposits.order(:created_at).first 

希望它可以帮助你

答案 2 :(得分:1)

要为用户提取第一笔存款:

class User
  def first_deposit
    deposits.order(created_at: :desc).first
  end
end 

检查存款是否是特定用户的第一个:

class Deposit
  def first?
    self.class.where(user: user).order(created_at: :desc).first == self
  end
end

答案 3 :(得分:0)

你可以试试这个

class Deposit < ApplicationRecord

  def self.get_first_deposit(user)
    where(user_id: user.id).order(:created_at).first
  end 


end

Deposit.get_first_deposit(user)将返回第一条记录。