2013-01-16 64 views
5

我真的很喜歡RABL,但它看起來像它會用.rabl文件混亂我的意見文件夾。我真的想最好有一個單獨的API views目錄所以它會是這樣:RABL API視圖目錄?

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

什麼是實現這一目標的最佳途徑?我使用本教程:

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

要設置的版本,但它不支持Rabl的。我在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 

但如預期似乎並沒有工作。

回答

5

有同樣的問題。和如果要拋棄這條線Rabl::Renderer.json(@customers, 'api/v1/customers/index')只是改變配置,以config.view_paths = [Rails.root.join('app', 'views', 'api', 'v1')]在Rabl的初始化

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

加入這個解決它。在控制器中它會自動鏈接它。

希望這可以幫助

+5

儘管如何處理版本? – toobulkeh

0

從我能看到這應該工作。我正在做幾乎相同的事情。你得到什麼錯誤?

+0

RABL似乎不工作。我不知道爲什麼 – andy