0

RABLを使用して API を公開する作業を行っています。ビューを公開するのは簡単ですが、自分のアプリケーションがそれらのビューを消費するという問題に遭遇しました。

たとえばhttp://example.com/api/articles、記事の JSON 表現を生成する にエンドポイントがあるとします。

私のArticlesController#indexアクションでは、記事のリストを表示する (HAML) ビューをレンダリングしたいと考えています。のロジックを複製するのではなく、ArticlesApiController#index単純にそのデータを使用したいと思います。つまり、/articles「API エンドポイントからこのデータを取得してください」と言って、そのデータを HAML ビューに渡します。

どうやってやるの?それとも、これを行う方法が間違っていますか?

4

1 に答える 1

1

RABL でこのスクリーンキャストをご覧ください。

ビューでは、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)
于 2012-06-19T23:51:03.207 に答える