如何从应用程序中使用RABL API?

时间:2012-06-19 22:51:34

标签: ruby-on-rails api rest rabl

我正在使用RABL公开API。公开视图很容易,但是我自己的应用程序使用这些视图时遇到了麻烦。

例如,假设我在http://example.com/api/articles处有一个端点,它产生了文章的JSON表示。

在我的ArticlesController#index操作中,我希望呈现一个显示文章列表的(HAML)视图。而不是从ArticlesApiController#index复制逻辑,我想简单地使用该数据 - 即,我想说“从/articles API端点获取此数据”,然后将该数据传递给HAML图。

我该怎么做?或者,这是错误的做法吗?

1 个答案:

答案 0 :(得分:1)

在RABL上观看此screencast

在您的视图中,您可以按如下方式从RABL添加数据(取自railscast示例):

<div id="articles" 
   data-articles="<%= render(template: "articles/index.json.rabl") %>">

注意

使用gon gem。

可以使数据访问更加简单

在您的控制器中

def index
  @articles = Article.all 

  # initialize the JS variable upon HTML request
  gon.rabl if request.format == Mime::HTML

end

现在您可以按如下方式访问javascript中的数据:

alert(gon.articles)