将参数从as_json传递给模型

gal*_*gal 4 ruby ruby-on-rails ruby-on-rails-3

控制器:

user = User.find(params[:id])
respond_with({:posts => @posts.as_json})
Run Code Online (Sandbox Code Playgroud)

模型:

def as_json(options = {})
  {
    name: self.name,
    ...
  }
end
Run Code Online (Sandbox Code Playgroud)

我想将参数传递params[:id]as_json函数以改变JSON显示中的内容.

我该怎么做?

MrT*_*rus 5

好吧,as_json确实采用了一个选项哈希,所以我想你可以使用它来调用它

respond_with({:posts => @posts.as_json(:params => params)})
Run Code Online (Sandbox Code Playgroud)

然后,您可以在以下定义中引用params as_json:

def as_json(options = {})
  params = options[:params] || {}
  {
    name: self.name,
    params_id: params[:id]
    ...
  }
end
Run Code Online (Sandbox Code Playgroud)