データベースに情報が送信されません
rails on rubyを使い、投稿フォームに入力した情報をデータベースに送り、
そのデータが保存されれば一覧ページにうつり、
保存されなければ投稿フォームを繰り返すというページを作っています。
投稿フォームから送信ボタンを押しても、データが送信されず
投稿フォームに戻ってしまいます。
入力内容がちゃんとデータベースに送られ、
それを表示できるようにしたいです。
発生している問題・エラーメッセージ
エラーメッセージは出ていないのですが、
rails c で確認したところデータベースにも情報は入っていませんでした。
該当のソースコード
view
1<h1>コート新規投稿</h1> 2<%= link_to "コート一覧に戻る", coats_path %> 3 4 5<div class="post-container"> 6 <p class="title">投稿フォーム</p> 7 <%= form_for(@coat, :url => { controller:'coats', action:'create'})do |f| %> 8 <%= f.label :コート名 %> 9 <%= f.text_field :name,size: 140%> 10 <br> 11 <div class="image"> 12 <%= f.label :image %> 13 <%= f.file_field :image %> 14 </div> 15 <%= f.label :住所 %> 16 <%= f.text_field :address,size: 140%> 17 <br> 18 <%= f.label :詳細 %> 19 <%= f.text_field :body,size: 140%> 20 <br> 21 <%= f.label :リンク %> 22 <%= f.text_field :url,size: 140%> 23 <br> 24 <%= f.submit "送信"%> 25 <br> 26 <% end %> 27</div>
controller
1class CoatsController < ApplicationController 2 3 before_action :authenticate_user! 4 5 def index 6 if params[:search] == nil 7 @coats= Coat.all 8 elsif params[:search] == '' 9 @coats= Coat.all 10 else 11 #部分検索 12 @coats = Coat.where("body LIKE ? ",'%' + params[:search] + '%') 13 end 14 end 15 16 def new 17 @coat = Coat.new 18 end 19 20 def create 21 @coat = Coat.new(coat_params) 22 #coat.user_id = current_user.id エラーが出たのでいったん忘れないように仮置きしています 23 if @coat.save 24 redirect_to :action => "index" 25 else 26 redirect_to :action => "new" 27 end 28 end 29 30...省略... 31 32private 33 def coat_params 34 params.require(:coat).permit(:name, :address, :url, :body, :image) 35 end 36end 37
migrate
1class CreateCoats < ActiveRecord::Migration[6.0] 2 def change 3 create_table :coats do |t| 4 t.string :name 5 t.string :address 6 t.text :body 7 t.string :url 8 t.boolean :display 9 10 t.timestamps 11 end 12 end 13end
railsroutes
1 Prefix Verb URI Pattern Controller#Action 2 new_user_session GET /users/sign_in(.:format) devise/sessions#new 3 user_session POST /users/sign_in(.:format) devise/sessions#create 4 destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy 5 new_user_password GET /users/password/new(.:format) devise/passwords#new 6 edit_user_password GET /users/password/edit(.:format) devise/passwords#edit 7 user_password PATCH /users/password(.:format) devise/passwords#update 8 PUT /users/password(.:format) devise/passwords#update 9 POST /users/password(.:format) devise/passwords#create 10 cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel 11 new_user_registration GET /users/sign_up(.:format) devise/registrations#new 12 edit_user_registration GET /users/edit(.:format) devise/registrations#edit 13 user_registration PATCH /users(.:format) devise/registrations#update 14 PUT /users(.:format) devise/registrations#update 15 DELETE /users(.:format) devise/registrations#destroy 16 POST /users(.:format) devise/registrations#create 17 user GET /users/:id(.:format) users#show 18 coat_likes POST /coats/:coat_id/likes(.:format) likes#create 19 coat_like DELETE /coats/:coat_id/likes/:id(.:format) likes#destroy 20 coats GET /coats(.:format) coats#index 21 POST /coats(.:format) coats#create 22 new_coat GET /coats/new(.:format) coats#new 23 edit_coat GET /coats/:id/edit(.:format) coats#edit 24 coat GET /coats/:id(.:format) coats#show 25 PATCH /coats/:id(.:format) coats#update 26 PUT /coats/:id(.:format) coats#update 27 DELETE /coats/:id(.:format) coats#destroy 28 users GET /users(.:format) users#index 29 POST /users(.:format) users#create 30 new_user GET /users/new(.:format) users#new 31 edit_user GET /users/:id/edit(.:format) users#edit 32 GET /users/:id(.:format) users#show 33 PATCH /users/:id(.:format) users#update 34 PUT /users/:id(.:format) users#update 35 DELETE /users/:id(.:format) users#destroy 36 statics GET /statics(.:format) statics#index 37 POST /statics(.:format) statics#create 38 new_static GET /statics/new(.:format) statics#new 39 edit_static GET /statics/:id/edit(.:format) statics#edit 40 static GET /statics/:id(.:format) statics#show 41 PATCH /statics/:id(.:format) statics#update 42 PUT /statics/:id(.:format) statics#update 43 DELETE /statics/:id(.:format) statics#destroy 44 root GET / coats#index
補足情報(FW/ツールのバージョンなど)
似たようなほかのアプリ(自分で作ったもの)からほとんどコピペしたものです
データが登録されない問題はmodelにかけられているvalidationが原因である場合や、routingがおかしい場合もあるので、それらの内容についても共有してあると原因が突き止めやすくなるかと思います。
ちなみに、routingについては、routes.rbをそのまま貼り付けるよりも、`rails routes`というコマンドを実行した結果の方が内容が理解しやすいものになります。
回答3件
あなたの回答
tips
プレビュー