【发布时间】:2022-01-17 12:35:44
【问题描述】:
我为 Rails 项目设置了 Draper 的装饰器来替换原来的助手。我将帮助代码移到了装饰器:
def birthday(date)
"MinYear#{date.year - 1911} Month#{date.month} Day#{date.day}"
end
并在 View 中添加 .decorate 文本以使用它
<%= user.decorate.birthday %>
但是,这会导致ArgumentError wrong number of arguments (given 0, expected 1)
def birthday(date)
如果我删除第一个日期,它将显示NoMethodError undefined method 'date' for #<UserDecorator:0x000055570cbafc58>
"MinYear#{date.year - 1911} Month#{date.month} Day#{date.day}"
如何解决这些错误?
【问题讨论】:
-
date是在哪里定义的?这是 User 模型上的一个属性? -
用户模型
def age Date.today.year - birthday.year end上定义的日期
标签: ruby-on-rails decorator draper