从视图中将Grape API渲染为字符串

时间:2013-07-24 21:11:11

标签: ruby-on-rails grape-api render-to-string

我在Rails 4应用中设置了基于葡萄的API 。我希望通过其中一个API调用将json生成渲染到内联标记中的视图中 - 专门用于使JSON数据可用于angularjs视图以避免(JSON) API)页面加载后调用服务器。

如何将 Grape API渲染为字符串

/app/api/api.rb

class API < Grape::API
  version 'v1', using: :path
  format :json
  get '/dashboard' do
    ...
  end
end

视图/仪表板/ index.html.erb

<script>   
  <%= render some-way-to-render-to-text('/api/v1/dashboard.json') %>
</script>

我可以使用get http请求来呈现它,但我希望避免http调用的开销。我宁愿直接调用API类。

1 个答案:

答案 0 :(得分:0)

您的erb文件在发送到客户端之前会被渲染为原始html。你的api调用是在这之后进行的,因此无法接收http响应并在ruby中处理它,因为此时所有的ruby都被翻译成了html。

你想要做的是以角度处理它。从那里你可以使用jquery将它插入DOM。

在角度方面,您会在服务中执行以下操作:

$http.get(....).success(//insert into DOM here)