복붙노트

[RUBY-ON-RAILS] 3.1 include_root_in_json 레일

RUBY-ON-RAILS

3.1 include_root_in_json 레일

액티브 :: Base.include_root_in_json = 사실은 레일 3.10.rc4에서 작동하지 않는 것 그리고 나는 문서에 표시되지 않습니다.

루트 요소는 기본적으로 떨어져 지금부터 우리는 어떻게 다시 활성화합니까?

@ 레일 comments.to_json 3.1 지금처럼 보인다

[
  {
    comment: "Fun street park.",
    created_at: 2011-06-29T02:28:29Z,
  }
]

그리고 이전 버전에 내가 다시받을 필요가 루트 노드를 가지고있다.

[
  {
    comment: {
      comment: "Fun street park.",
      created_at: 2011-06-29T02:28:29Z
    }
  }
]

해결법

  1. ==============================

    1.귀하의 코멘트 모델에 직접 설정하십시오.

    귀하의 코멘트 모델에 직접 설정하십시오.

    class Comment < ActiveRecord::Base
      self.include_root_in_json = true
    end
    
  2. ==============================

    2.그것은 레일 3.1 당신이 JSON 구성 파일을 만듭니다 것으로 나타났다. 나는 이니셜 내 파일이 무시 그래서이 파일이 여기 몰랐어요.

    그것은 레일 3.1 당신이 JSON 구성 파일을 만듭니다 것으로 나타났다. 나는 이니셜 내 파일이 무시 그래서이 파일이 여기 몰랐어요.

    라이언의 대답에 이상이 설정을 무시한다.

    설정 / 초기화 / wrap_parameters.rb

    # Be sure to restart your server when you modify this file.
    #
    # This file contains settings for ActionController::ParamsWrapper which
    # is enabled by default.
    
    # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
    ActionController::Base.wrap_parameters :format => [:json]
    
    # Disable root element in JSON by default.
    if defined?(ActiveRecord)
      ActiveRecord::Base.include_root_in_json = false
    end
    
  3. ==============================

    3.또한, 새로운에서 3.1 레일 래퍼의 PARAMS은 흥미 롭다 :

    또한, 새로운에서 3.1 레일 래퍼의 PARAMS은 흥미 롭다 :

    http://edgeapi.rubyonrails.org/classes/ActionController/ParamsWrapper.html

  4. from https://stackoverflow.com/questions/6515436/rails-3-1-include-root-in-json by cc-by-sa and MIT license