rabl重复使用模板

时间:2012-10-24 19:18:20

标签: ruby-on-rails rabl

我有一个show.json.rabl用于控制器的show动作,在我的Rails应用程序中渲染出一些JSON,我认为edit动作的JSON响应与我的显示没有什么不同,所以我想知道是否有一种方法可以使用show.json.rabl进行edit操作。

我知道我可以在我的users/show中使用“扩展edit.json.rabl,但是如果我想完全摆脱edit.json.rabl并且在控制器中有一行指定这个action的json响应应该使用show action的rabl模板。可以这样做吗?

谢谢

2 个答案:

答案 0 :(得分:1)

如果您使用的是rabl> ='0.11.6',则必须提供view_path参数(即如果它尚未在您的rabl.rb配置文件中全局设置),如下所示:

render :inline => Rabl::Renderer.json(@user, 'users/show', :view_path => 'app/views')

否则您会收到以下错误:

RuntimeError (Cannot find rabl template 'users/show' within registered ([]) view paths!):

答案 1 :(得分:0)

我不知道是否有更好的方法,但你可以直接用Rabl

渲染JSON
render :inline => Rabl::Renderer.json(@user, 'users/show')