将参数从as_json传递给模型

时间:2012-07-15 15:52:52

标签: ruby-on-rails ruby ruby-on-rails-3

控制器:

user = User.find(params[:id])
respond_with({:posts => @posts.as_json})

型号:

def as_json(options = {})
  {
    name: self.name,
    ...
  }
end

我想将参数行params[:id]传递给as_json函数以更改JSON显示中的内容。

我该怎么做?

1 个答案:

答案 0 :(得分:5)

嗯,as_json确实采用了一个选项哈希,所以我想你可以用

来调用它
respond_with({:posts => @posts.as_json(:params => params)})

然后,您可以在as_json

的定义中引用参数
def as_json(options = {})
  params = options[:params] || {}
  {
    name: self.name,
    params_id: params[:id]
    ...
  }
end