美文网首页
render 避免双重渲染错误

render 避免双重渲染错误

作者: 吃果果的蛐蛐 | 来源:发表于2018-10-15 14:51 被阅读0次

下面的代码会导致这个错误:

def show
  @book = Book.find(params[:id])
  if @book.special?
    render action: "special_show"
  end
  render action: "regular_show"
end

错误消息:Can only render or redirect once per action(一个动作只能渲染或重定向一次)
注意:Rails 开始渲染,把 @book 变量导入 special_show 视图中。

如果 @book.special? 的求值结果是 true,Rails 开始渲染,把 @book 变量导入 special_show 视图中。但是,show 动作并不会就此停止运行,当 Rails 运行到动作的末尾时,会渲染 regular_show 视图,从而导致这个错误。解决的办法很简单,确保在一次代码运行路径中只调用一次 render 或 redirect_to 方法。有一个语句可以帮助解决这个问题,那就是 and return。

下面的代码对上述代码做了修改:

def show
  @book = Book.find(params[:id])
  if @book.special?
    render action: "special_show" and return
  end
  render action: "regular_show"
end

相关文章

  • render 避免双重渲染错误

    下面的代码会导致这个错误: 错误消息:Can only render or redirect once per a...

  • 关于render渲染次数

    关于render渲染次数 页面加载render执行几了次(五) 单纯的前端渲染render在componentWi...

  • React hooks编码方式

    新版本新特性解读 render支持返回数组和字符串 错误边界捕获 提升SSR渲染速度,支持流式渲染 减少文件体积 ...

  • React 文档再学习 2 增加交互

    渲染(Render)和提交(Commit) 组件展示在页面之前,须有React 渲染 (Render)。可以如此想...

  • 渲染(Render)

    熟悉后台的同学一定知道数据绑定模式 简而言之就是挖空填洞 模板的渲染就是说洞已经挖好了,然后渲染就是个填洞的过程 ...

  • render渲染

    react实际渲染更新过程(reactElement、diff、setState) 一个模块中props,data...

  • React拓展6-PureComponent

    用于避免重复渲染(执行render函数),提高效率 Component的2个问题 当组件中运行方法setState...

  • render渲染组件

    render render渲染组件,也可以实现components一样的效果 render 和 component...

  • React 学习 2 JSX

    ReactDOM.render( Hello,world! 通过render渲染页面,输入Hello,world ...

  • # 错误边界

    默认情况下,若一个组件在渲染期间(render)发生错误,会导致整个组件树全部卸载; 错误边界:是一个组件,该组件...

网友评论

      本文标题:render 避免双重渲染错误

      本文链接:https://www.haomeiwen.com/subject/ncufzftx.html