在 Rails 控制器的更新操作中,通常有如下代码:
def update
@book = Book.find(params[:id])
if @book.update_attributes(params[:book])
redirect_to(@book)
else
render :edit
end
end
在其他情况下,这将呈现编辑模板。但是,如果我想使用一个 respond_to,与我在编辑操作中的方式完全相同,如:
def update
@book = Book.find(params[:id])
if @book.update_attributes(params[:book])
redirect_to(@book)
else
respond_to do |format|
format.html # edit.html.erb
format.json { render :json => @team }
end
end
end
因此,如果更新失败,请确保根据请求的格式返回 json 或 html。这有意义吗?如果是这样,您将如何避免错误:“在此操作中多次调用渲染和/或重定向”