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

时间:2015-09-19 20:33:10

标签: ruby-on-rails object view model instance

我有User个个人资料,用户有Recordsbelong_to个用户。在我的users/show/1路径中,如果用户有记录,我只想显示记录部分。所以,在我的User模型中,我写了一个方法: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?

1 个答案:

答案 0 :(得分:1)

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

所以user model中的方法就像

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