将方法链传递给to_json

时间:2010-01-12 20:15:43

标签: ruby-on-rails ruby json

我知道你可以将你希望可用的值的方法传递给json对象,如下所示:

# user.rb
def name
  first_name + last_name
end

# some controller
render :json => @user.to_json(:methods => :name)

但是如果我想按一下这个方法返回的值(用文本助手说)有没有办法呢?我想另一种问这个方法是#to_json支持任意属性吗?如果没有,为什么不呢?有没有其他人遇到过这个?

1 个答案:

答案 0 :(得分:1)

您可以使用“render:json”在JSON输出中指定任意属性。这是一个例子:

render :json => { :arbitraryAttribute => arbitrary_method_to_call(), :user => @user.to_json }

上面的代码会生成如下的JSON:

{
    "arbitraryAttribute":"returnValueOfMethodCall",
    "user":{ the result of @user.to_json }
}