5

我真的很喜欢 RABL,但它似乎会把我的视图文件夹和.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

但正如预期的那样,这似乎不起作用。

4

2 回答 2

5

有同样的问题。并通过在 RABL 初始化程序中添加它来解决它

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

如果你想放弃这条线Rabl::Renderer.json(@customers, 'api/v1/customers/index'),只需将配置更改为config.view_paths = [Rails.root.join('app', 'views', 'api', 'v1')]. 在控制器中,它将自动链接它。

希望这可以帮助

于 2013-05-18T14:32:26.950 回答
0

据我所见,这应该可行。我正在做几乎相同的事情。你得到什么错误?

于 2013-01-28T17:14:08.573 回答