Rails:呈现状态代码而不呈现模板

Dav*_* B. 1 ruby ajax ruby-on-rails 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
Run Code Online (Sandbox Code Playgroud)

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

如何在不让Rails尝试到达模板的情况下呈现状态代码?

Seb*_*lma 6

您可以使用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>
Run Code Online (Sandbox Code Playgroud)