Проблемы обратной совместимости с библиотеками json в rails 2.3.4 - PullRequest
0 голосов
/ 03 декабря 2009

Метод to_json в rails 2.0.2 для объектов (скажем, объект пользовательской модели с идентификатором и именем), используемый для простого вывода в виде

{"id":"xyz","name":"hello"}

Но при обновлении рельсов до 2.3.4 он выдает результат как

{"user":{"id":"xyz","name":"hello"}}

Это нарушает мою большую часть кода внешнего интерфейса.

Есть ли способ получить результаты так же, как в 2.0.2 ???

Ищете быстрый ответ от вас, ребята !!

1 Ответ

0 голосов
/ 03 декабря 2009

Вам нужно отредактировать файл config/initializers/new_rails_defaults.rb и изменить ActiveRecord::Base.include_root_in_json = true на false. Это должно сделать это. См. Документацию to_json .

Если по какой-то причине у вас нет этого файла, именно так он и должен выглядеть в приложении Rails 2.3.x по умолчанию.

# Be sure to restart your server when you modify this file.

# These settings change the behavior of Rails 2 apps and will be defaults
# for Rails 3. You can remove this initializer when Rails 3 is released.

if defined?(ActiveRecord)
  # Include Active Record class name as root for JSON serialized output.
  ActiveRecord::Base.include_root_in_json = true

  # Store the full class name (including module namespace) in STI type column.
  ActiveRecord::Base.store_full_sti_class = true
end

# Use ISO 8601 format for JSON serialized times and dates.
ActiveSupport.use_standard_json_time_format = true

# Don't escape HTML entities in JSON, leave that for the #json_escape helper.
# if you're including raw json in an HTML page.
ActiveSupport.escape_html_entities_in_json = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...