我创建了这个帮助方法。在我看来,我用days_left(duedate)
来称呼它。我真的不喜欢我的助手。是否可以将其与self
一起使用。因为我真的不知道自己是如何被使用的。它与java或javascript中的this
相同吗?它与什么对象有关?随意调整此方法。感谢你的时间!
def days_left(duedate)
(if duedate.date == Date.today
"Today"
elsif duedate.date-Date.today < 1
"expired"
elsif duedate.date-Date.today == 1
"Tomorrow"
else
"#{(duedate.date-Date.today).to_i}"
end).to_s.html_safe
end
答案 0 :(得分:1)
您可以尝试将此方法移至模型中。
这类似于将“full_name”方法添加到具有属性“first_name”和“last_name”的模型中。您不会在数据库中单独存储'full_name',因为这会导致冗余的非规范化数据。
例如:
class Employee < ActiveRecord::Base
def full_name
"#{first_name} #{last_name}"
end
end
因此,您可以类似地将“days_left”方法添加到您的模型中,因为它正在添加现有数据属性的更友好版本。