SORU
10 Ocak 2011, PAZARTESİ


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
20 Ocak 2011, PERŞEMBE


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009