2013-01-16 12 views
5

Mi piace davvero RABL, ma sembra che ingombra le mie cartelle delle viste con i file .rabl. Mi vuole veramente avere idealmente un separato elenco API viste in modo sarebbe come questo:Directory viste API RABL?

app/ 
    views/ 
     customers/ 
      index.html.erb 
      show.html.erb 
      ...... 
     api/ 
      v1/ 
       customers/ 
        index.json.rabl 
        show.json.rabl 

Qual è il modo migliore per raggiungere questo? Sto usando questo tutorial:

http://railscasts.com/episodes/350-rest-api-versioning

Per configurare il controllo delle versioni, ma non supporta Rabl. Ho provato questo in app/controllers/api/v1/customers_controller.rb:

module Api 
    module V1 
     class CustomersController < ApplicationController 
      respond_to :json 

      def index 
       @customers = Customer.search(params[:page]) 

       Rabl::Renderer.json(@customers, 'api/v1/customers/index') 
      end 
     end 
    end 
end 

Ma come ci si aspetta che non sembrano funzionare.

risposta

5

Aveva lo stesso problema. E risolto aggiungendo questo nel inizializzatore Rabl

# config/initializers/rabl_init.rb 
require 'rabl' 
Rabl.configure do |config| 
    config.view_paths = [Rails.root.join('app', 'views')] 
end 

Se si vuole abbandonare questa linea Rabl::Renderer.json(@customers, 'api/v1/customers/index') basta cambiare la configurazione per essere config.view_paths = [Rails.root.join('app', 'views', 'api', 'v1')]. Nel controller lo collegherà automaticamente.

Spero che questo aiuti

+5

Come si gestisce questa versione? – toobulkeh

0

Da quello che posso vedere questo dovrebbe funzionare. Sto facendo praticamente la stessa cosa Quali errori stai ottenendo?

+0

RABL non sembra funzionare. Non sono sicuro del perché – andy