我有一个Ruby on Rails 4 Web应用程序。我有一个预订模型,如下:
class Booking < ActiveRecord::Base
attr_accessor :departureTranslated
@departureTranslated
def as_json(options = { })
h = super(options)
h[:departureTranslated] = @departureTranslated
h
end
end
我有一个departureTranslated属性,它不是来自db,而是计算出来的。我做了类似的事情:
booking.departureTranslated = somevalue
当我这样做时:
puts "departureTranslated=" + booking.departureTranslated
puts "booking=" + booking.inspect
对于第一次放置,我正确获得指定的值。但是,如果我把booking.inspect我看不到departureTranslated属性。
为什么呢?
答案 0 :(得分:1)
Rails会覆盖ActiveRecord::Core#inspect中的常规Ruby检查方法。此方法显示与数据库列关联的值。如果您需要显示其他自定义属性,则可以覆盖inspect
方法。