0

答えが見つからず、気になっていたので、ようやくこの質問をするようになりました。この動作の背後にある理由は何ですか?それはREST-thingy-drivenですか:)?

私はこの「回避策」を見つけましたが、説明はありません:レンダリングを行う方法:edit呼び出しはアドレスバーに/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 に答える