Создание JSON из массива - PullRequest
       2

Создание JSON из массива

1 голос
/ 21 февраля 2012

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

MyModel.find(params[:id]).my_sub_models.map(&:attributes)

Я показываю my_sub_model: name (s) в поле выбора. Это нормально.

Позже я добавил столбец (: label) в подмодель и хочу отобразить комбинированный текст в поле выбора, например: name-: label. Итак, я создал метод

def combined_name
    self.name + "-" + self.label
end

Как мне теперь добавить имя_комбинации для каждого элемента в мой json?

Есть идеи? Спасибо

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Чтобы включить любые методы в модель, используйте: методы.

my_model.to_json(:methods => :combined_name)
# => {"id": 1, "name": "My Name", "label": "Label",
      "created_at": "2012/02/01", "combined_name": "My Name - Label"}

Ссылка: API Doc .

Обновление:

to_json метод ActiveRecord устарел после 2.3.8. Вероятно, вы используете Rails 3. Подобный вопрос был задан когда-то здесь , и ответы могут помочь вам здесь. Особенно о самоцвете acts_as_api . Пойду проверю.

0 голосов
/ 22 февраля 2012

Вы пробовали собирать?

MyModel.find(params[:id]).my_sub_models.collect { |sub_model| [ submodel.id, submodel.combined_name ] }

Таким образом, вы отправите только идентификатор и имя, которые вам понадобятся для вашего поля выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...