我终于来问这个问题,因为我没有找到答案,它一直困扰着我。这种行为背后的原因是什么?它是 REST 驱动的 :) 吗?
我找到了这个“解决方法”,但没有解释:如何进行渲染:编辑调用在地址栏中显示 /edit
谢谢
编辑
我的问题写得不是很好,对不起。为什么默认的 Rails 行为不是重定向到编辑模板?至少对我来说,这会感觉更合乎逻辑:)
我终于来问这个问题,因为我没有找到答案,它一直困扰着我。这种行为背后的原因是什么?它是 REST 驱动的 :) 吗?
我找到了这个“解决方法”,但没有解释:如何进行渲染:编辑调用在地址栏中显示 /edit
谢谢
我的问题写得不是很好,对不起。为什么默认的 Rails 行为不是重定向到编辑模板?至少对我来说,这会感觉更合乎逻辑:)
render
不重定向,因此 URL 栏地址没有理由改变。
默认update
方法如下所示:
# PUT /posts/1
# PUT /posts/1.json
def update
@post = Post.find(params[:id])
respond_to do |format|
if @post.update_attributes(params[:post])
format.html { redirect_to @post, notice: 'Post was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
URL 是/posts/1
,即显示在 URL 栏中的内容。如果update_attributes 失败,例如,验证错误,它会呈现"edit"
模板,没有重定向。