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
inspect 応答も json 応答も、価格属性を送信または表示しません。