我在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类。
答案 0 :(得分:0)
您的erb文件在发送到客户端之前会被渲染为原始html。你的api调用是在这之后进行的,因此无法接收http响应并在ruby中处理它,因为此时所有的ruby都被翻译成了html。
你想要做的是以角度处理它。从那里你可以使用jquery将它插入DOM。
在角度方面,您会在服务中执行以下操作:
$http.get(....).success(//insert into DOM here)