我知道你可以将你希望可用的值的方法传递给json对象,如下所示:
# user.rb
def name
first_name + last_name
end
# some controller
render :json => @user.to_json(:methods => :name)
但是如果我想按一下这个方法返回的值(用文本助手说)有没有办法呢?我想另一种问这个方法是#to_json
支持任意属性吗?如果没有,为什么不呢?有没有其他人遇到过这个?
答案 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 }
}