Передать цепочки методов to_json - PullRequest
1 голос
/ 12 января 2010

Я знаю, что вы можете передавать методы, значения которых вы хотите быть доступными для объектов json, например:

# user.rb
def name
  first_name + last_name
end

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

Но если я хочу немного помассировать значение, возвращаемое из метода (скажем, с помощью текстового помощника), есть ли способ сделать это? Я думаю, еще один способ спросить, это #to_json поддерживает произвольные атрибуты? Если нет, то почему? Кто-нибудь еще сталкивался с этим раньше?

1 Ответ

1 голос
/ 02 февраля 2010

Вы можете использовать "render: json", чтобы указать произвольные атрибуты в выводе JSON. Вот пример:

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

Приведенный выше код будет генерировать JSON, как показано ниже:

{
    "arbitraryAttribute":"returnValueOfMethodCall",
    "user":{ the result of @user.to_json }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...