我正在使用Rails 5.2.2,我的数据库中有许多空(nil)字段,并创建了一个自定义方法以在模型中使用@UIScope
@SpringComponent
@Route("monitoring", layout = DashboardView::class)
class MonitoringView() : VerticalLayout(), BeforeEnterObserver {
...
}
且没有错误。
distance_of_time_in_words
我正在使用:p从视图中传递对象
def my_distance_of_time_in_words
if self.accounts.blank?
"No Record Avaliable"
else
distance_of_time_in_words(self.accounts.first.updated_at,Time.now).titleize
end
end
运行良好,我重新启动了PC,并显示:
<%= @customer.my_distance_of_time_in_words %>
这很奇怪,因为正如我所说的那样,它正在按预期的方式工作。但是它现在无法正常工作。
答案 0 :(得分:1)
默认情况下,日期助手在您的模型中不可用,因此您需要明确地将它们包括在内。
class Customer < ApplicationRecord
include ActionView::Helpers::DateHelper
def my_distance_of_time_in_words
if self.accounts.blank?
"No Record Avaliable"
else
distance_of_time_in_words(self.accounts.first.updated_at,Time.now).titleize
end
end
end
但是,更好的方法是使用辅助方法来完成您需要的操作,由于您已经可以使用ActionView::Helpers::DateHelper
了,因此您无需显式包括{1>}:
module CustomersHelper
def my_distance_of_time_in_words(customer)
if customer.accounts.blank?
"No Record Avaliable"
else
distance_of_time_in_words(customer.accounts.first.updated_at,Time.now).titleize
end
end
end