如何在 rails 中调用实例对象的方法?

How do I call a method on an instance object in rails?

我有 User 个配置文件,用户有 Recordsbelong_to 个用户。在我的 users/show/1 路径中,我只想在用户有记录时显示记录部分。所以,在我的用户模型中,我写了一个方法:has_records?

def self.has_records?(usr)
  return true if User.find_by_id(usr.id).records.size > 0 
end

要调用这个方法,我需要在视图中写User.has_records?(user),真是重复。我可以重构代码以便能够说 @user.has_records?

当然,首先您需要将方法的类型从 class method 更改为 instance method

所以你在 user model 中的方法就像

def has_records?
  true if self.records.size > 0
end

如果您将在 user 模型中定义方法

def has_records?(usr)
  self.find_by_id(usr.id).records.size > 0 
end

如果您想在 has_records? 方法中发送给其他用户,它将起作用。如果你想检查同一个用户那么

def has_records?
  self.records.size > 0 
end

它应该可以工作