このオブジェクトを提供する前に、名前付きのルートを指定する必要があります。これを行うよりクリーンな方法はありますか?
get '/api/ducks/:id' do |id|
content_type :json
duck = {
duck: Duck.find(id)
}
JSONP duck
end
何のオームを使っているかわかりません
アクティブレコードを使用していると仮定します
グローバルに適用される構成の場所を設定できます
ActiveRecord::Base.include_root_in_json = true
また
Duck.find(id).as_json(:root=>true)
http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html
このSOの回答も確認してください https://stackoverflow.com/a/6515973/518832
MongoMapper の場合
class Something
include MongoMapper::Document
self.include_root_in_json = true
end
その後
JSONP Duck.where(:id=>id).to_json
この github コメントに従って動作するはずです https://github.com/jnunemaker/mongomapper/issues/392
また、知識のためだけにソースがどのように機能するかを確認したい
https://github.com/jnunemaker/mongomapper/blob/master/lib/mongo_mapper/plugins/serialization.rb
唯一のクリーンな方法は、不要な変数を削除することです。
get '/api/ducks/:id' do |id|
content_type :json
JSONP { duck: Duck.find(id) }
end