并在方法结束时返回

时间:2014-02-18 12:11:38

标签: ruby-on-rails ruby

有时我会发现这样的代码:

def bar
  #......
  if response && response.body
    #......
    render(:text => html) and return
  end
end

我想知道,在方法的最后使用and return是否有任何意义?

3 个答案:

答案 0 :(得分:5)

这有助于避免double render errorsLayouts and Rendering

答案 1 :(得分:2)

我看到这样的代码不在方法的底部(这是有道理的,因为渲染不是方法的结束)。但在这里我没有看到任何意义。

请参阅Avoiding Double Render Errors

答案 2 :(得分:0)

这可确保您在render之后返回,因为如果您多次致电render,则会收到例外情况:Render and/or redirect were called multiple times in this action

其中一个原因是,如果有人编辑您的代码,如果您的代码变为如下,则会遇到麻烦:

def bar
  ...
  x = true
  ...
  if x
   render(:text => html)
  end

  ...
  render(:text => html)
end