2011-11-21 38 views
0

我有一个模型的设置,像这样:的Rails 3如何调用时参数发送到嵌套的对象as_json

class Item < ActiveRecord::Base 
    belongs_to: media 

    def as_json(options={}) 
    super(:include => :media) 
    end 
end 

class Media < ActiveRecord::Base 
    def media_func(some_param) 
    ... 
    some_val 
    end 

    def as_json(options={}) 
    output = super(:include => :media) 
    output[:some_attr] = media_func(options[:some_param]) 
    output 
    end 
end 

我有一个这样的控制器:

class Api::FeedsController < ApplicationController 
    def item_list 
    @some_param = some_parameter 
    @item_list = Item.all 
    render :json => @item_list 
    end 
end 

如何赫克我通过@some_param,以便媒体对象在渲染到json时接收它?

回答

0

只需添加此控制器:

render :json => @item_list.as_json(:some_param => @some_param)

编辑。将方法as_json添加到对象。

+0

我不知道这个答案如何工作。 '@ item_list'是一个数组,而数组不是方法,所以这将是一个语法错误。 –