Rails Создание допустимого объекта JSON - PullRequest
1 голос
/ 03 января 2011

Я мог бы использовать вашу помощь в создании допустимого объекта JSON в Rails.

Вот пример допустимого объекта JSON, который я использую в плагине jQuery: https://drew.tenderapp.com/kb/autosuggest-jquery-plugin

var data = {items: [
    {value: "21", name: "Mick Jagger"},
    {value: "43", name: "Johnny Storm"},
    {value: "46", name: "Richard Hatch"},
    {value: "54", name: "Kelly Slater"},
    {value: "55", name: "Rudy Hamilton"},
    {value: "79", name: "Michael Jordan"}]};

Внутри Rails я создаю свой объект следующим образом:

@projects = Projects.all
@projectlist = Array.new
@projectlist << {
  :items => @projects.map { |project|
    {
      :name => space.name,
      :value => space.id
    }
  }
}

Но это заканчивается тем, что выводится примерно так, что ОШИБКИ с помощью плагина:

[{"items":[{"value":74,"name":"XXXXXX"},{"value":71,"name":"XXXXXX"},{"value":70,"name":"XXXXXX"}]}]

Похоже, что есть[] вокруг первоначальной {} любой идеи, почему это происходит и как построить действительный объект JSON?

Спасибо!

1 Ответ

1 голос
/ 03 января 2011

Просто присвойте @projectlist Hash, вот так:

РЕДАКТИРОВАТЬ Посмотрев на API плагина, я пришел к выводу, что вам нужно сначала преобразовать value s в строки:

@projects = Projects.all
@projectlist = {
  :items => @projects.map { |project|
    {
      :name => space.name,
      :value => space.id.to_s
    }
  }
}

Поскольку вы инициализируете @projectlist в Array и нажимаете Hash на него, вы получаете эти обертывающие [] символы.

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