ブログ記事のデータを更新するミニブログみたいなのを作成してまして、追加しようとしたらエラーが出たので助言のほど宜しくお願いします。
ここでデータを送信したら以下のエラーが出ました。
<h1>Blogposts#add</h1> <p>ブログの記事の投稿</p> <% if @blogpost.errors.any? %> <ul> <% @blogpost.errors.full_messages.each do |err| %> <li><%= err %></li> <% end %> </ul> <% end %> <table> <%= form_for(@blogpost, url:{controller:'blogposts', action:'add'}) do |form| %> <tr> <th>Title</th> <td><%= form.text_field :title %></td> </tr> <tr> <th>Read</th> <td><%= form.text_field :read %></td> </tr> <tr> <th>Content</th> <td><%= form.text_area :contact, {cols:40,rows:10} %></td> </tr> <tr> <th>Genre ID</th> <td><%= form.text_field :bloggenre_id %></td> </tr> <tr> <th></th> <td><%= form.submit "送信" %></td> </tr> <% end %> </table> <hr> <p>ジャンルの一覧</p> <table> <tr> <th>Id</th><th>Genre</th> </tr> <% @genres.each do |obj| %> <tr> <td><%= obj.id %></td> <td><%= obj.name %></td> </tr> <% end %> </table>
blogposts_controller.rb
class BlogpostsController < ApplicationController layout 'blogposts' def index @data = Blogpost.all.order('created_at desc') end def add @blogpost = Blogpost.new @genres = Bloggenre.all if request.post? then @blogpost = Blogpost.create blogposts_params redirect_to '/blogposts' end end def edit @blogpost = Blogpost.find params[:id] @genres = Bloggenre.all if request.patch? then @blogpost.update blogposts_parmas redirect_to '/blogposts' end end def delete @blogpost = Blogpost.find(params[:id]) if request.post? then @blogpost.destroy redirect_to '/blogposts' end end private def blogposts_params params.require(:blogpost).permit(:title,:read,:content,:bloggenre_id) end end
index.html.erb
<h1>Blogposts#index</h1> <p>投稿記事の一覧</p> <table> <tr> <th>Id</th><th>title</th><th>read</th><th>genre</th><th colspan="2"></th> </tr> <% @data.each do |obj| %> <tr> <td><%= obj.id %></td> <td><%= obj.title %></td> <td><%= obj.read %></td> <td><%= obj.bloggenre.name %></td> <td><a href="/blogposts/<%= obj.id %>">Edit</a></td> <td><a href="/blogposts/delete/<%= obj.id %>">Delete</a></td> </tr> <% end %> </table> <p><a href="/blogposts/add">新規作成>>></a></p>
migrate/20180628045953_create_blogposts_rb
class CreateBlogposts < ActiveRecord::Migration[5.2] def change create_table :blogposts do |t| t.text :title t.text :read t.text :contact t.integer :bloggenre_id t.timestamps end end end
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。