不返回用于远程调用的停止控制器操作

时间:2018-08-05 18:23:18

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

我在将表单的两个参数传递给控制器​​时遇到问题。我希望如果对象的erb.js失败,则不会触发update模板。

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

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

if @object.update(some_params)

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

return

1 个答案:

答案 0 :(得分:1)

之所以会这样,是因为根据convention over configuration Rails,如果未明确指定,则会自动呈现操作视图。

为了避免呈现,如果@object尚未成功更新,则其中之一是设置head:

if @object.update(some_params)

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