プログラミング学習中の学生です。
Ruby on Rails を使用して筋トレ管理アプリ作成中に手詰まってしまい、質問させていただきました。
エラーコードも出てこないため、どのように対処すればいいのか困っています。
form_forを使用してデータが正しく保存されません。
createアクションも一応反応はしているようですが、テーブルにデータが保存されません。
(デバッグでaction: createとなっていました)
また、フォームに内容を入力して、送信ボタンを押しても空文字だと認識されてしまいます。
routes
1Rails.application.routes.draw do 2 3 root 'static_pages#home' 4 5 get '/help', to: 'static_pages#help' 6 get '/about', to: 'static_pages#about' 7 8 get '/signup', to: 'users#new' 9 post '/signup', to: 'users#create' 10 11 get '/login', to: 'sessions#login_form' 12 post '/login', to: 'sessions#login' 13 delete '/logout', to: 'sessions#destroy' 14 resources :users 15 16 get '/chest_trainings', to:'chest_trainings#new' 17 post '/chest_trainings', to:'chest_trainings#create' 18 19end 20
chest_post.rb ↓
class ChestPost < ApplicationRecord validates :discipline, {presence: true} validates :weight, {presence: true} validates :number, {presence: true} end
chest_trainings/new.html.erb ↓
<div class = "container"> <div class="row"> <div class="col-md-6 col-md-offset-3"> <%= form_for(@chestpost, url: chest_trainings_path ) do |f| %> <%= render 'shared/cpost_error_messages' %> <%= f.label :discipline %> <%= f.text_field :discipline %> <%= f.label :weight %> <%= f.text_field :weight %> <%= f.label :number %> <%= f.text_field :number %> <%= f.submit "new post", class: "btn btn-success" %> <% end %> </div> </div> </div>
chest_trainings_controller.rb ↓
class ChestTrainingsController < ApplicationController def new @chestpost = ChestPost.new end def create @chestpost = ChestPost.new(discipline: params[:discipline], weight: params[:weight], number: params[:number]) #binding.pry if @chestpost.save redirect_to root_path , success: "投稿しました" else render 'new', danger:"投稿に失敗" end end end
やってみたこと
・url の確認
・誤字脱字の確認
・コンソールでデータが正しく作成できるか確認。
→コンソール上からだと、データの保存ができた。
お手数ですが、ご教示をお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。