我知道我不能在一个动作中多次调用render
,但也许有人可以建议替代这个来替换AJAX响应中多个DOM元素的内容。
我想到了这个:
render :json => {:updates => {'#a' => '<p>newContentA</p>', '#b' => '<p>newContentB</p>'}}
...然后让前端的js执行替换(从而保持javascript不在我的实际视图文件中)。但是使用上述解决方案,如果我想从视图文件构建任何DOM内容,我将不得不再次调用render:
render :json => {:updates => {'#a' => render(a), '#b' => '<p>newContentB</p>'}}
执行此操作的正确方法是什么?