return 远程调用没有停止控制器动作

return no stopping controller action for remote call

我有一个表单向控制器发送两个参数的问题。如果对象的 update 失败,我希望不会触发 erb.js 模板。

我在操作结束时添加了 return,但视图仍然被触发。

她是我的控制器的一部分,我认为它负责对视图进行操作:

if @object.update(some_params)

...
  respond_to do |f|
    f.html {redirect_to some_path_here}
    f.js
  end
end

return

会发生这种情况,因为根据 convention over configuration Rails 自动呈现动作视图,如果没有明确指定的话。

为了避免渲染,如果 @object 没有成功更新,选项之一是设置头部:

if @object.update(some_params)

...
  respond_to do |f|
    f.html {redirect_to some_path_here}
    f.js
  end
else
  head :unprocessable_entity
end