如何从模型内部访问属性 rails

how to access properties from inside a model rails

所以我有一个名为 item 的模型,其中有一列名为 price。我假设列将作为实例变量存储在模型中,但是方法

 def price
   @price
 end

returns 没什么。所以我的问题是如何从模型内部获取价格?

额外信息 我这样做的原因是商品有时有特价,所以我想要一种方法 price 检查特价并在特价活动时更改价格,如果没有则不理会它,例如

 def price
   check_for_special
   @price
 end

ActiveRecord 自动生成与数据库字段关联的 setter 和 getter 方法。 price 将是同名字段的 getter 方法。

通过添加 price 方法,您已经覆盖了 ActiveRecord 创建的方法。当您覆盖现有方法时,您可以通过调用 super 来访问原始方法。所以你可以这样做:

def price
  check_for_special
  super
end

但是,我不建议这样做,因为您通常需要一种方法来获取价格值,而不必总是调用其他方法。所以

def price_with_check
  check_for_special
  price
end