Ruby新手 - 我正在尝试定义一个名为days_to_exp
的变量,它将计算易腐食品到期日之前的天数。我在串行器中放置了以下方法:
class ItemSerializer < ActiveModel::Serializer
attributes :id, :food_name, :purchase_date, :exp_date, :store_name, :quantity, :purchased, :days_to_exp
def days_to_exp
today = Time.now.utc.to_date
exp_dte = exp_date
(exp_dte - today).to_i
end
end
错误:NameError(未定义的局部变量或#的方法`exp_date'):
有谁能帮我理解为什么会出现这个错误?谢谢!
答案 0 :(得分:1)
exp_date
是模型的属性。所以,你可以写:
object.exp_date - today
该类顶部的行,其中指出:
attributes :exp_date
只是定义属性 - 它可以为其创建getter / setter方法。不要将Symbol
与变量/方法混淆。