在 Rails 中,我试图在 json 响应中发送一个瞬态属性(我不想保留在数据库中)。我发送所有模型属性,但这个瞬态属性除外。我正在尝试覆盖 to_json 方法以添加此属性。我已经阅读了一些与此相关的条目,但它对我不起作用。我错过了一些东西。
我的模型:
class Boat < ActiveRecord::Base
attr_accessor :price
def to_json(options = {})
options[:methods] = :price;
super(options)
end
belongs_to :boat_model
belongs_to :port
end
我的控制器:
@boats = Boat.find_by_sql(["SELECT *
FROM boats b, ports p
WHERE p.name = ?
AND b.port_id = p.id", port])
@boats[0].price = 89
@boats[1].price = 130
puts 'price:' + @boats[0].price.to_s
puts @boats.inspect
render :json => @boats
检查和 json 响应都不会发送或显示价格属性。