Rails渲染返回不会停止执行

时间:2016-10-18 15:37:58

标签: ruby-on-rails render

嗨inmy app我有这样的情况:

some_controller.rb中的

我有一个代码:

def start
  method1(param)
  ....
  if some_case
    render json: {ok: "ok"}
  end
end

def method1
  ...
  if some_case
    render json: {error: "Some error"}
    return
  end
end

问题在于,当json有错误时,我得到double render错误。它建议我使用render .. and return。我已经尝试过了,但仍然得到这个错误。 这是因为render本身不会中断执行,而只是将smth返回给调用者方法?如果是这样,我的情况怎么办?事情是method1实际上是一个很大的方法,我当然希望它与start方法分开。如果没有理由在那里呈现错误,我希望继续执行start

感谢名单!

2 个答案:

答案 0 :(得分:1)

请考虑使用过滤器。这有效:

YYMMDDhhmmss;Active
YYMMDDhhmmss;Passive
YYMMDDhhmmss;Active
YYMMDDhhmmss;Passive

当在过滤器中进行渲染时,它本身不会运行动作,因此不会发生双重渲染。

答案 1 :(得分:-1)

使用此代码

def method1
  if some_case
    render json: {error: "Some error", status: :unprocessable_entity }
  end
end