ruby-on-rails - 使用渲染后如何停止 Controller 执行? (使用 Ruby on Rails)

标签 ruby-on-rails ruby rubygems

我有这个方法:

 def index
  urls = parse_urls(params[:urls])

  responses = Parallel.map (urls) do |url|
    begin
     get url
    rescue  RestClient::Exception
      case params[:errors]
      when 'fail_any'
      render :json => fail_any
      when 'replace'
      replace
      else
      render :json => { :error => 'UNKNOWN_ERROR_TYPE'},status: 400
      end
       {:result=>'failed'}
    end
  end

但我想在渲染后停止 Controller 执行。 我试图在渲染后添加中断,但我收到一条错误消息

Parallel::DeadWorker

Marshal.load(read)
  rescue EOFError
    raise DeadWorker
  end
  raise result.exception if ExceptionWrapper === result
  result

最佳答案

使用:返回:

return render :json => fail_any

或者,在 render :json ... 行之后使用 return,例如:

render :json => fail_any
return

更新:

render :text => "No Data" and return if some_condition

或者,如果您确定要在此时停止 Controller 执行,只需render and return:

render :text => "No Data" and return

这确保执行在遇到语句后停止,并且在看到返回时操作代码中不再发生任何流程。

这篇文章 Render and Return可能会有用。

关于ruby-on-rails - 使用渲染后如何停止 Controller 执行? (使用 Ruby on Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32170955/

相关文章:

ruby - 从 Hash_Secret 格式检索文本格式的密码,即从 Rails 中的盐

ruby-on-rails - Rails bundler 不会在组内安装 gem

ruby-on-rails - Rails 没有在 en.yml 中获取自定义日期和时间格式

ruby-on-rails - AASM rails ;如果发生特定转换,如何执行某些操作

php - 在 Ruby、Python 或 PHP 中,是否有一个插入到 Array 对象中间需要 O(1) 时间的操作?

ruby-on-rails - 在不丢失 gem 的情况下更新 Ruby 1.9.3 -> 2.0.0

ruby-on-rails - Rails 初始化程序在 gem 中的什么位置?

ruby-on-rails - 允许第三方应用程序的架构

ruby-on-rails - libmysqlclient_r.so.16 : cannot open shared object file: No such file or directory DREAMHOST

ruby-on-rails - ruby rails : Exclude Elements from Arrray