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尝试到达模板的情况下呈现状态代码?
您可以使用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)