我正在使用RABL公开API。公开视图很容易,但是我自己的应用程序使用这些视图时遇到了麻烦。
例如,假设我在http://example.com/api/articles
处有一个端点,它产生了文章的JSON表示。
在我的ArticlesController#index
操作中,我希望呈现一个显示文章列表的(HAML)视图。而不是从ArticlesApiController#index
复制逻辑,我想简单地使用该数据 - 即,我想说“从/articles
API端点获取此数据”,然后将该数据传递给HAML图。
我该怎么做?或者,这是错误的做法吗?
答案 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)