Rails:渲染状态代码而不渲染模板

时间:2017-11-03 10:37:09

标签: ruby-on-rails ruby ajax ruby-on-rails-5

我正在尝试对rails(5.1.3)应用程序进行ajax调用。我希望控制器中的目标操作呈现状态代码200,而不执行任何其他操作。这是动作的样子。

  def some_delete_action
    respond_to do |format|
      format.js do
        render status: 200, layout: false
      end
    end
  end

问题是rails尝试加载与该操作关联的模板。由于我的应用中没有此类模板,因此出现ActionView::MissingTemplate错误。

如何在不让rails尝试访问模板的情况下呈现状态代码?

1 个答案:

答案 0 :(得分:4)

您可以使用ActionController::Head并将:ok作为值传递:

# home_controller.rb
def do_nothing
  head :ok
end

# routes
get 'home/do_nothing

# request in view
<script type="text/javascript">
  $.get('<%= home_do_nothing_path %>')
</script>