Ruby - 减去日期时的NoMethodError

时间:2017-04-29 14:28:29

标签: ruby-on-rails ruby

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'):

有谁能帮我理解为什么会出现这个错误?谢谢!

1 个答案:

答案 0 :(得分:1)

exp_date是模型的属性。所以,你可以写:

object.exp_date - today

该类顶部的行,其中指出:

attributes :exp_date

只是定义属性 - 它可以为其创建getter / setter方法。不要将Symbol与变量/方法混淆。