私のコントローラーには、次のものがあります。
class TestController < ApplicationController
respond_to :html, :json
# code...
def create
@test = current_user.tests.create(params[:test])
respond_with @test, location: tests_url
end
# code...
end
かっこいいです。作成すると(期待どおりに)test
リダイレクトされますが、を押すと、ブラウザからフォームの再送信を求められます。test#index
F5
location
ステートメントを削除すると、respond_with
問題なく機能しますが、目的のURLに移動しません。
どうすればこれを修正できますか?
前もって感謝します。
編集
メソッドをに変更します
@test = current_user.tests.new(params[:transaction])
respond_with(@test) do |format|
format.html { redirect_to "/tests/" } if @test.save
end
そしてそれは動作します..しかし、それは私が.の代わりに文字列を使用しなければならなかったのはちょっと奇妙ですtests_url
。
編集2
この完全なサンプルコードと バグレポートを参照してください。
編集3
Ruby 1.9.3-p327では再現できませんが、-p385でしか再現できません。