3

ユーザーがサーバーを要求したときに JSON として出力したい単純なクラスがあります。

class GeoName

include ActiveModel::Validations
include ActiveModel::Serialization

validates :country_name, :presence => true, :length => {:minimum => 1}
validates :country_code, :presence => true, :length => {:minimum => 1}
validates :province, :presence => true, :length => {:minimum => 1}
validates :district, :presence => true, :length => {:minimum => 1}
validates :zip_code, :presence => true, :length => {:minimum => 1}
validates :city, :presence => true, :length => {:minimum => 1}
validates :street, :presence => true, :length => {:minimum => 1}

attr_accessor :country_name, :country_code, :province, :district, :zip_code, :city, :street


def attributes
 @attributes ||= {'country_name' => country_name, 'country_code' => country_code, 'province' => province,'district' => district,'zip_code' => zip_code,'city' => city, 'street' => street}
end


end

コントローラーでは、次のことを行います。

def index
    geoname = GeoName.new 
    geoname.street = "blablabla"
    geoname.city = "blablabla" 
    render :json => geoname.to_json
  end

routes.rb 内

controller :testcontroller do
    match 'testme', :to => :index
  end

URL localhost:3000/testme をリクエストすると、有効な JSON レスポンスを受け取ります。ただし、コンソールには非推奨の警告があります

rvm/gems/ruby-1.9.3-p125@geo/gems/activesupport-3.1.0/lib/active_support/json/decoding.rb:12:in `decode': [DEPRECATION] MultiJson.decode is deprecated and will be removed in the next major version. Use MultiJson.load instead.

Ruby バージョン 1.9.3-p125 およびレール - 3.1.0。

4

1 に答える 1

0

MultiJSON簡単なグーグルは、これが将来のバージョンで取り除かれるべき警告であることを示します(非推奨のコードとそのメッセージがgemコードから削除されたとき)。基本的に、これはコードで使用している開発者に対する警告MultiJSON.decodeです。コードで使用しない場合はMultiJSON.decode、無視してください。

依存する gem が更新され、更新された gem をプロジェクトにバンドルするとすぐに、メッセージが消える場合があります。

于 2012-05-09T07:53:50.607 に答える