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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Ruby on Rails

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

解決済

4回答

2527閲覧

form_for createアクションが反応しない

kwtkwt

総合スコア21

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Ruby on Rails

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

0クリップ

投稿2019/06/22 03:09

編集2019/06/22 05:39

Railsで開発しています。
form_for を使用し新規でデータを作成しようとしているのですがうまく行きません。。。
formにデータが渡されていないようです。。。
よろしくお願いします。

ruby

1Rails.application.routes.draw do 2 root 'players#index' 3 resources :players 4end

ruby

1class Player < ApplicationRecord 2end 3

ruby

1class PlayersController < ApplicationController 2 def index 3 end 4 5 def new 6 @player = Player.new 7 # debugger 8 end 9 10 def create 11 @player = Player.new(paramas_player) 12 13 @player.save 14 15 # debugger 16 end 17 18 def show 19 20 end 21 22 def edit 23 24 end 25 26 def delete 27 28 end 29 30 private 31 32 def paramas_player 33 params.require(:player).permit(:name, :sex, :number, :hand, :position, :story) 34 end 35end 36

erb

1<section class="bs-docs-section"> 2 <div class="row"> 3 <div class="col-lg-12"> 4 <div class="page-header"> 5 <h1 id="forms">Forms</h1> 6 </div> 7 </div> 8 </div> 9 10 <div class="row"> 11 <div class="col-lg-6"> 12 <div class="bs-component"> 13 <form> 14 <fieldset> 15 <legend>Legend</legend> 16 <div class="form-group"> 17 <%= form_for(@player, url: { controller: 'players', action: 'create'}) do |f| %> 18 19 <%= f.label :name %> 20 <%= f.text_field :name, { class: 'form-control' } %> 21 22 <%= f.label :sex %> 23 <%= f.select :sex, [['男', '男'], ['女', '女']], prompt: '選択してください', class: 'custom-select' %> 24 25 <%= f.label :number %> 26 <%= f.text_field :number, { class: 'form-control'} %> 27 28 <%= f.label :hand %> 29 <%= f.select :hand, [['右投右打', '右投右打'], ['右投左打', '右投左打'], ['右投両打', '右投両打'], 30 ['左投左打', '左投左打'], ['左投右打', '左投右打'], ['左投両打', '左投両打']], prompt: '選択してください' %> 31 32 <%= f.label :position %> 33 <%= f.select :position, [['投手', '投手'], ['捕手', '捕手'], ['一塁手', '一塁手'], ['二塁手', '二塁手'], ['三塁手', '三塁手'], ['遊撃手', '遊撃手'], 34 ['左翼手', '左翼手'], ['中堅手', '中堅手'], ['右翼手', '右翼手']], { prompt: '複数選択可'} , { class: 'form-control' } %> 35 36 <%= f.label :story %> 37 <%= f.text_field :story, { class: 'form-control'} %> 38 39 <%= f.submit :登録, class: 'btn btn-primary' %> 40 <%# <% debugger %> %> 41 <% end %> 42 43 44 なぜかcreateアクションが反応しない 45 46 <%= debug(params) if Rails.env.development? %> 47 </fieldset> 48 </form> 49 </div> 50 </div> 51 </div> 52 </section>

値を入力し登録ボタンを押した段階

イメージ説明

イメージ説明

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

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

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

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

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

guest

回答4

0

ベストアンサー

はて、、面妖な。。。

あ。

<div class="bs-component"> <form> <fieldset>

ここにある form が悪さしてます、多分。これと、対になる</form>を取ってみて下さい

投稿2019/06/23 19:38

winterboum

総合スコア23324

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

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

kwtkwt

2019/06/24 02:48

ありがとうございます! formタグを消したらうまくいきました!! formが重複してしまっていたんですね。 たくさんの回答ありがとうございました。
guest

0

> なぜかcreateアクションが反応しない
とはどこで判断したのでしょうか。
貼ってある画像をみると、パラメータも渡っているようで、createには渡っているように思えます。

反応しない と判断した理由を書いて頂けるともう少し進むと思います。

codeを拝見した所
1) createが成功した後に何をするかが書かれていない。
この場合 rails がとる行動は app/views/players/create.html.* を探しに行きます。多分作っていないでしょうから、それが見つからないというエラーになっているかと思います。

通常は成功したら show へ 失敗したら new に戻るように書きます

if @player.save render :show else render :new end

エラーメッセージや成功メッセージを出すようにもう少し書きますが。
show.html.*をお忘れなく。

投稿2019/06/22 10:14

winterboum

総合スコア23324

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

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

kwtkwt

2019/06/23 12:40 編集

回答ありがとうございます。 > 反応しない と判断した理由を書いて頂けるともう少し進むと思います。 rails c でテータを確認したところ、新しいデータが入っていなかったからです。。。 ```ruby def create @player = Player.new(paramas_player) if @player.save render :show else render :new end # debugger end ``` このような形でcreateが成功した後の処理を書いたのですうまく行きませんでした。。。泣
winterboum

2019/06/23 12:34

logを見せて下さい。 Started POST "... から下を
kwtkwt

2019/06/23 13:34

logを確認したところ Started POST は存在しなかったです。。 submit を押した後のlogを添付しました。 ``` Started GET "/players/new?utf8=%E2%9C%93&authenticity_token=NHUnSHkn3e8OYc8%2F10ZIj6O7dBA7xMmJCy9eypaGhdok0YCyAR%2BxXEN1H9G2Mgo%2B7gr7pZwUubclrkFgvCT0ZA%3D%3D&player%5Bname%5D=%E3%81%82&player%5Bsex%5D=%E7%94%B7&player%5Bnumber%5D=2&player%5Bhand%5D=%E5%8F%B3%E6%8A%95%E5%8F%B3%E6%89%93&player%5Bposition%5D=%E6%8A%95%E6%89%8B&player%5Bstory%5D=a&commit=%E7%99%BB%E9%8C%B2" for ::1 at 2019-06-23 22:31:17 +0900 (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC ↳ /Users/r-kawata/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98 Processing by PlayersController#new as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"NHUnSHkn3e8OYc8/10ZIj6O7dBA7xMmJCy9eypaGhdok0YCyAR+xXEN1H9G2Mgo+7gr7pZwUubclrkFgvCT0ZA==", "player"=>{"name"=>"あ", "sex"=>"男", "number"=>"2", "hand"=>"右投右打", "position"=>"投手", "story"=>"a"}, "commit"=>"登録"} Rendering players/new.html.erb within layouts/application Rendered players/new.html.erb within layouts/application (14.4ms) Completed 200 OK in 259ms (Views: 240.3ms | ActiveRecord: 0.4ms) Started GET "/players/css/bootstrap.css" for ::1 at 2019-06-23 22:31:17 +0900 ActionController::RoutingError (No route matches [GET] "/players/css/bootstrap.css"): Started GET "/players/assets/css/example.css" for ::1 at 2019-06-23 22:31:17 +0900 Started GET "/players/assets/img/brand.png" for ::1 at 2019-06-23 22:31:17 +0900 actionpack (5.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call' web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app' web-console (3.7.0) lib/web_console/middleware.rb:30:in `block in call' web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch' web-console (3.7.0) lib/web_console/middleware.rb:20:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call' railties (5.2.3) lib/rails/rack/logger.rb:38:in `call_app' railties (5.2.3) lib/rails/rack/logger.rb:26:in `block in call' activesupport (5.2.3) lib/active_support/tagged_logging.rb:71:in `block in tagged' activesupport (5.2.3) lib/active_support/tagged_logging.rb:28:in `tagged' activesupport (5.2.3) lib/active_support/tagged_logging.rb:71:in `tagged' railties (5.2.3) lib/rails/rack/logger.rb:26:in `call' sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/request_id.rb:27:in `call' rack (2.0.7) lib/rack/method_override.rb:22:in `call' rack (2.0.7) lib/rack/runtime.rb:22:in `call' activesupport (5.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/executor.rb:14:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/static.rb:127:in `call' rack (2.0.7) lib/rack/sendfile.rb:111:in `call' railties (5.2.3) lib/rails/engine.rb:524:in `call' puma (3.12.1) lib/puma/configuration.rb:227:in `call' puma (3.12.1) lib/puma/server.rb:660:in `handle_request' puma (3.12.1) lib/puma/server.rb:474:in `process_client' puma (3.12.1) lib/puma/server.rb:334:in `block in run' puma (3.12.1) lib/puma/thread_pool.rb:135:in `block in spawn_thread' ActionController::RoutingError (No route matches [GET] "/players/assets/css/example.css"): ActionController::RoutingError (No route matches [GET] "/players/assets/img/brand.png"): actionpack (5.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call' web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app' web-console (3.7.0) lib/web_console/middleware.rb:30:in `block in call' web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch' web-console (3.7.0) lib/web_console/middleware.rb:20:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call' railties (5.2.3) lib/rails/rack/logger.rb:38:in `call_app' railties (5.2.3) lib/rails/rack/logger.rb:26:in `block in call' activesupport (5.2.3) lib/active_support/tagged_logging.rb:71:in `block in tagged' activesupport (5.2.3) lib/active_support/tagged_logging.rb:28:in `tagged' activesupport (5.2.3) lib/active_support/tagged_logging.rb:71:in `tagged' railties (5.2.3) lib/rails/rack/logger.rb:26:in `call' sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/request_id.rb:27:in `call' rack (2.0.7) lib/rack/method_override.rb:22:in `call' rack (2.0.7) lib/rack/runtime.rb:22:in `call' activesupport (5.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/executor.rb:14:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/static.rb:127:in `call' rack (2.0.7) lib/rack/sendfile.rb:111:in `call' railties (5.2.3) lib/rails/engine.rb:524:in `call' puma (3.12.1) lib/puma/configuration.rb:227:in `call' puma (3.12.1) lib/puma/server.rb:660:in `handle_request' puma (3.12.1) lib/puma/server.rb:474:in `process_client' puma (3.12.1) lib/puma/server.rb:334:in `block in run' puma (3.12.1) lib/puma/thread_pool.rb:135:in `block in spawn_thread' actionpack (5.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call' web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app' web-console (3.7.0) lib/web_console/middleware.rb:30:in `block in call' web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch' web-console (3.7.0) lib/web_console/middleware.rb:20:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call' railties (5.2.3) lib/rails/rack/logger.rb:38:in `call_app' railties (5.2.3) lib/rails/rack/logger.rb:26:in `block in call' activesupport (5.2.3) lib/active_support/tagged_logging.rb:71:in `block in tagged' activesupport (5.2.3) lib/active_support/tagged_logging.rb:28:in `tagged' activesupport (5.2.3) lib/active_support/tagged_logging.rb:71:in `tagged' railties (5.2.3) lib/rails/rack/logger.rb:26:in `call' sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/request_id.rb:27:in `call' rack (2.0.7) lib/rack/method_override.rb:22:in `call' rack (2.0.7) lib/rack/runtime.rb:22:in `call' activesupport (5.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/executor.rb:14:in `call' actionpack (5.2.3) lib/action_dispatch/middleware/static.rb:127:in `call' rack (2.0.7) lib/rack/sendfile.rb:111:in `call' railties (5.2.3) lib/rails/engine.rb:524:in `call' puma (3.12.1) lib/puma/configuration.rb:227:in `call' puma (3.12.1) lib/puma/server.rb:660:in `handle_request' puma (3.12.1) lib/puma/server.rb:474:in `process_client' puma (3.12.1) lib/puma/server.rb:334:in `block in run' puma (3.12.1) lib/puma/thread_pool.rb:135:in `block in spawn_thread' ```
guest

0

railsについて詳しくはないので違うかもしれないのですが、下記の余分な閉じ括弧が邪魔しているとかはないですか?

erb

1<%# <% debugger %> %>

投稿2019/06/22 06:45

fumito_94

総合スコア679

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

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

kwtkwt

2019/06/22 07:22

回答ありがとうございます。debuggerを消してみたのですがうまく行きませんでした。。。
fumito_94

2019/06/22 07:32

そうですか… devtoolで見たときのsubmitボタンって正常になっていますでしょうか?
kwtkwt

2019/06/22 07:57

すみません、devtoolをあまり使ったことがないのですがパラメータの中身はこんな感じでした。 submitを押したらこうなりました。 ```text utf8: ✓ authenticity_token: s7e3FZtMrLJh9UuyaOMnNKix8M3yivj3Rpl3EKPloWnJrUQvhuccRh302PMkA8moIYEkGkxv6p0mLQchCeBKWA== player[name]: あ player[sex]: 男 player[number]: 1 player[hand]: 右投右打 player[position]: 投手 player[story]: a commit: 登録 ``` 正常とはこういうことですか??
fumito_94

2019/06/22 08:08

そうだったのですね。失礼しました。 こちらに検証のやり方などが書いてあるので、今後知っていると役に立つと思いますよ! https://saruwakakun.com/html-css/basic/chrome-dev-tool そもそも上の検証であげていただいているformタグの中にaction要素などがないですね… form_for(@player, :url => {:action => "create"}) とかでいけないですかね。
kwtkwt

2019/06/23 12:09

ありがとうございます。 こちら見させていただきたいとおもいます。 ```ruby <%= form_for(@player, :url => {:action => "create"}) do |f| %> ``` このように書いて見たのですがダメでした。。。。
guest

0

どう上手くいかないのか教えて下さい。
エラーメッセージがあればそちらも一緒に教えて頂けると回答がしやすいです。

こちらのcreateアクションの項目を見て頂ければ原因が分かるかと思います。
http://igarashikuniaki.net/rails_textbook/new-create.html

投稿2019/06/22 03:22

marurunn

総合スコア702

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

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

kwtkwt

2019/06/22 05:33

回答ありがとうございます。 new の view 画像 を添付しました。 このような形でエラーは起きず、入力したデータは渡されていると思うのですが、コンソールで確認して見てもデータが保存されていません。 コンソール場でcreateメソッドを使うとうまくデータが保存できるのですが、form_forを使うとうまくできません。。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問