Rails 4设置模型属性

时间:2014-12-01 12:18:55

标签: ruby-on-rails ruby-on-rails-4

我有一个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属性。

为什么呢?

1 个答案:

答案 0 :(得分:1)

Rails会覆盖ActiveRecord::Core#inspect中的常规Ruby检查方法。此方法显示与数据库列关联的值。如果您需要显示其他自定义属性,则可以覆盖inspect方法。