質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

6118閲覧

rails form_for の submit ボタンが反応しない

shigeki-yabune

総合スコア10

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2019/06/10 08:08

railsのform_forのsubmitボタンが反応しない。

現在作成しているアプリケーション
にて、form_forのsubmitが反応しない理由がわかりません。

###環境
ruby 2.6.1
rails 5.2.3
mysql2
Puma 3.12.1

発生している問題・エラーメッセージ

submitボタンを押しても反応がないので、
エラーメッセージも特にありません。

該当のソースコード

関連箇所のみ抜粋

<table> <%= form_for(@band, url:{controller:'band', action:'add'}) do |form| %> <tr><th>バンド名</th> <td><%= form.text_field :bandname %></td></tr> <tr><th>メンバー</th> <td><%= form.text_area :members, {cols:40, rows:10} %></td></tr> <tr><th>定演</th> <td><%= form.text_field :teien %></td></tr> <tr><th>学内</th> <td><%= form.text_field :gakunai %></td></tr> <tr><th>備考</th> <td><%= form.text_field :notes %></td></tr> <tr><th></th> <td><%= form.submit "送信" %></td></tr> <% end %> </table>

route

1 get 'band/index' 2 get 'band', to: 'band#index' 3 get 'band/add' 4 post 'band/add', to: 'band#create' 5 get 'band/edit/:id', to: 'band#edit' 6 patch 'band/edit/:id', to: 'band#update' 7 get 'band/delete/:id', to: 'band#delete' 8 post 'band/delete/:id', to: 'band#delete' 9 get 'band/admin' 10 get 'band/:id', to: 'band#show'

Controller

1 def add 2 @msg = 'バンド追加' 3 @band = Band.new 4 end 5 def create 6 @data = Band.new bands_params 7 if @data.save then 8 redirect_to '/band/admin' 9 else 10 @bands = Band.where('id > 1').order('teien desc','gakunai desc','created_at asc') 11 render '/band/admin' 12 end 13 end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらく、tableタグ内かつtrタグの前にform_forを配置しているため、
生成されるHTML(ブラウザの開発者ツール等で確認できるHTML)では、
inputタグ(erb内ではf.submit)より前にformタグが閉じられてしまっていると思います。

以下のように該当のテーブル全体を囲うような、formを用意するとsubmitが効くようになるかと思います。

<%= form_for(@band, url:{controller:'band', action:'add'}) do |form| %> <table> <tr><th>バンド名</th> <td><%= form.text_field :bandname %></td></tr> <tr><th>メンバー</th> <td><%= form.text_area :members, {cols:40, rows:10} %></td></tr> <tr><th>定演</th> <td><%= form.text_field :teien %></td></tr> <tr><th>学内</th> <td><%= form.text_field :gakunai %></td></tr> <tr><th>備考</th> <td><%= form.text_field :notes %></td></tr> <tr><th></th> <td><%= form.submit "送信" %></td></tr> </table> <% end %>

下記の記事も参考になるかと思います。
https://qiita.com/hc_isobe/items/cfe1f31319780e73cebe

投稿2019/06/11 01:29

編集2019/06/11 01:32
uw9623

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shigeki-yabune

2019/06/11 05:53

提示していただいた方法で解決できました! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問