###前提・実現したいこと
rubyはいろいろ利用していますが、railsを勉強中です。
(rubyは2.4.3、railsは5.0.6で、centos7.4で動作)
POSTでページ間のデータ送信をテストしています。
下記コードで普通に動作します…が、送信後にF5等でリロードすると、データが消えます。
###発生している問題・エラーメッセージ
理論的に考えれば、これが正しい(リロード時はデータを送信しないから)とわかるのですが、他のサイトではブラウザ側で「POSTデータを使ってるけど再送信する?(意訳)」と出るときもあります。
これはrails側でブラウザの再送信の動作を止めているのでしょうか?
たぶんそうなのだろうと思いますが、アチコチ検索しても理論的な説明を見つけられませんでした…。
「こういう場合はgetを使え」ということなのかと思いますが、どうも考えが腑に落ちません。
ご存じであれば教えていただければと思います。
もし解除する方法(ブラウザ側の再送信サポートを有効化)があれば、そちらも…。
エラーメッセージ
###該当のソースコード
ruby
1●コントローラー側:test01_controller.rb 2class Test01Controller < ApplicationController 3 def send_test 4 @send_word = params[:send_word] 5 end 6end
ruby
1●ビュー側:send_test.html.erb 2<h1>Test01#send_test</h1> 3<p>Find me in app/views/test01/send_test.html.erb</p> 4 5<%= form_tag({controller: :test01, action: :send_test}, method: :post, id: :se1, class: :se1) do %> 6<label for="send">送信ワード:</label> 7<%= text_field_tag :send_word, @send_word, size: 30 %> 8<%= submit_tag "送信" %> 9<% end %>
ruby
1●routes.rb 2post 'test01/send_test'
あなたの回答
tips
プレビュー