2013-03-20 3 views
0

Пытаюсь значения модели перезапись по умолчанию для JSON, но вместо перезаписи его создать дубликат хэшRails модель as_json перезапись значения по умолчанию

Моя модель:

class HomeScreenButton < ActiveRecord::Base 
    belongs_to :product_category  
    validates :product_category_id, :x, :y, :presence => true 
    attr_accessible :product_category_id, :x, :y 

    def as_json(options={}) 
    hash = super(options) 
    hash.merge({ 
     :product_category_id => "fdfd" 
    }) 
    end 
end 

Мой контроллер:

def index 
    @home_screen_buttons = HomeScreenButton.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @home_screen_buttons} 
    end 
end 

Когда я открываю json, он показывает мне дубликат для product_category_id: [{"created_at":"2013-03-17T11:14:32Z","id":1,"product_category_id":5,"updated_at":"2013-03-17T11:14:32Z","x":300,"y":200,"product_category_id":"dfdffff"}]

ответ

1

Там нет необходимости слить хеши

def as_json(options={}) 
    hash = super(options) 
    hash[:product_category_id] = "fdfd" 
    hash 
end 
+0

Он по-прежнему делает дубликаты. Использование «product_category_id» вместо: product_category_id решило мою проблему в обоих примерах. –