我如何根据html和js的自定义操作的成功使用条件。使用基本操作(更新,创建)可以很好地工作,但在这里我无法正确地删除if / else语句,所以我没有检查操作是否成功
使用format.js表单我正在使用AJAX和complete.js.erb。
控制器
def complete
@task.update_attribute(:completed_at, Time.now)
respond_to do |format|
format.html { redirect_to completed_tasks_user_tasks_path(current_user), notice: "Task completed!" }
format.js
end
end
视图
<% if task.completed_at == nil %>
<%= link_to complete_user_task_path(id: task.id), action: :complete, remote: true, method: :patch do %>
<i class="fa fa-check"></i>
<% end %>
......
答案 0 :(得分:1)
此处的操作始终会成功,因为update_attribute不会运行验证/回调。所以你不应该检查这个动作是否成功。如果您担心它会引发错误,您可以在begin...rescue
周围update_attribute
,但除此之外您不必担心它。
或者,如果您希望它运行它们,请将其更改为if @task.update(completed_at: Time.now)
并适当切换返回值。