Raylar 3 respond_to: varsayılan biçim?
Raylar Raylar 2 bir uygulama dönüştürme duyuyorum 3. Ben şu anda bir denetleyicisi aşağıdaki gibi ayarlayın:
class Api::RegionsController < ApplicationController
respond_to :xml, :json
end
ve aşağıdaki gibi görünen bir eylem:
def index
@regions = Region.all
respond_with @regions
end
Uygulaması oldukça basit,/bölgeler, api/regions.xml ve apı/bölgeler apı.json beklediğiniz gibi cevap. Bu sorun, varsayılan olarak apı/bölgeler XML üzerinden yanıt vermek istiyorum. Bir XML yanıt bekliyoruz tüketiciler var ve hepsini kendi URL eklemek için değiştirmek zorunda nefret ediyorum .xml sürece kesinlikle gerekli.
Raylar 2 bunu yaparak bunu başarmak istiyorsunuz:
respond_to do |format|
format.xml { render :xml => @region.to_xml }
format.json { render :json => @region.to_json }
end
Ama Raylar 3 edemem XML yanıtı için varsayılan için bir yol bulmak. Herhangi bir fikir?
CEVAP
Eğer yapmaya çalıştığınız şeyi anlıyorum, muhtemelen XML için varsayılan kaynak biçimini ayarlayarak sorunu çözebilirsiniz. Bu kullanıcıların istekleri 'api/bölgelerin ve yanıt için varsayılan XML kullanarak yapmak için izin verir Şuna bir bak 'Denetleyicisi Ad ve Yönlendirme' ve 'Tanımlama Varsayılan' bölümler:
http://guides.rubyonrails.org/routing.html
Güzergah aşağıdaki gibi bir şey yapabilirsin.rb:
namespace "api" do
resources :regions, :defaults => { :format => 'xml' }
end
Sonra denetleyicisi yöntemleri için aşağıdaki çalışması gerekir:
class Api::RegionsController < ApplicationController
respond_to :xml, :json
def index
respond_with(@regions = Region.all)
end
end
Nasıl respond_to bloğu çalışır?raylar:...
4 varsayılan kapsam raylar...
Raylar seçin Yardımcısı Varsayılan seç...
Raylar göçler: bir sütun için varsayıl...
Nasıl Raylar Aktif Kayıt için varsayıl...