我有User
个个人资料,用户有Records
个belong_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?
答案 0 :(得分:1)
首先,您需要将方法类型从class method
更改为instance method
所以user model
中的方法就像
def has_records?
true if self.records.size > 0
end