0

我终于来问这个问题,因为我没有找到答案,它一直困扰着我。这种行为背后的原因是什么?它是 REST 驱动的 :) 吗?

我找到了这个“解决方法”,但没有解释:如何进行渲染:编辑调用在地址栏中显示 /edit

谢谢


编辑

我的问题写得不是很好,对不起。为什么默认的 Rails 行为不是重定向到编辑模板?至少对我来说,这会感觉更合乎逻辑:)

4

1 回答 1

2

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"模板,没有重定向。

于 2012-11-27T21:45:58.237 回答