0

在 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 响应都不会发送或显示价格属性。

4

1 回答 1

0

我在上面评论中附加的帖子中找到了解决方案。

将虚拟属性添加到 json 输出

于 2013-10-25T19:27:20.070 回答