我终于来问这个问题,因为我找不到答案而且一直困扰着我。这种行为背后的原因是什么?它是REST-thingy驱动的:)?
我发现这是“解决方法”,但没有解释:How to make a render :edit call show the /edit in the address bar
由于
<小时/> 的修改
我的问题不是写得好,抱歉。 为什么默认的Rails行为不会重定向到编辑模板?至少对我来说这会更符合逻辑:)
答案 0 :(得分:2)
render
不会重定向,因此网址栏地址无法更改。
默认的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
网址为/posts/1
,显示在网址栏中。如果update_attributes fails, e.g., a validation error,它会呈现"edit"
模板,而不会重定向。