2013-01-16 27 views
5

Tôi thực sự thích RABL, nhưng có vẻ như nó sẽ làm lộn xộn các thư mục xem của tôi với các tệp .rabl. Tôi thực sự muốn lý tưởng có một thư mục API quan điểm riêng biệt nên nó sẽ là như thế này:Thư mục xem RABL API?

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

cách tốt nhất để đạt được điều này là gì? Tôi đang sử dụng hướng dẫn này:

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

Để thiết lập phiên bản nhưng nó không hỗ trợ RABL. Tôi đã thử điều này trong 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 

Nhưng như mong đợi dường như không hoạt động.

Trả lời

5

Đã xảy ra sự cố tương tự. Và giải quyết nó bằng cách thêm này trong initializer RABL

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

Nếu bạn muốn mương dòng này Rabl::Renderer.json(@customers, 'api/v1/customers/index') chỉ cần thay đổi cấu hình được config.view_paths = [Rails.root.join('app', 'views', 'api', 'v1')]. Trong bộ điều khiển nó sẽ tự động liên kết nó.

Hy vọng điều này sẽ giúp

+5

Phiên bản này xử lý như thế nào? – toobulkeh

0

Từ những gì tôi có thể thấy điều này sẽ hoạt động. Tôi đang làm khá nhiều điều tương tự. Bạn đang gặp phải lỗi gì?

+0

RABL dường như không hoạt động. Tôi không chắc chắn tại sao – andy

Các vấn đề liên quan