rails5.2.3
エラー内容としてはタイトルの通りです。
フラッシュメッセージ自体は正常に動作しております。
DBに保存されない時にもフラッシュメッセージ時は投稿完了と表示されます。
こちら動作不具合の要因として考えられることとして、controller記述ミス、validationができていないことを上げテェックしましたが解明にはいたりませんでした。
お分かりになられる方いましたらご教授お願いします。
こちらpostコントローラです
def new @post = Post.new end def create if Post.create(post_params) flash[:notice] = "投稿が完了しました" redirect_to "/users/#{current_user.id}" else flash.now[:alert] = '投稿できませんでした' render :new end end private def post_params params.require(:post).permit(:title,:video,:text,:starta,:startb,:enda,:endb,category_ids: []).merge(user_id: current_user.id) end
こちらpostモデルです
class Post < ApplicationRecord validates :title, presence: true validates :video, presence: true validates :text, presence: true belongs_to :user has_many :comments, dependent: :destroy has_many :post_categories, dependent: :destroy has_many :categories, through: :post_categories, dependent: :destroy ~省略~ end
こちらmigrationです
create_table "posts", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| t.string "title", null: false t.string "video", null: false t.text "text", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.bigint "user_id" t.integer "starta" t.integer "startb" t.integer "enda" t.integer "endb" t.index ["title"], name: "index_posts_on_title", length: 32 t.index ["user_id"], name: "index_posts_on_user_id" end
こちらformになります
.form__field = f.text_field :title, placeholder: "title" .form__field = f.text_field :video, placeholder: "videoID" .form__field スタート = f.number_field :starta, placeholder: "分" %span 分 %span= f.number_field :startb, placeholder: "秒" %span 秒 .form__field ストップ = f.number_field :enda, placeholder: "分" %span 分 %span= f.number_field :endb, placeholder: "秒" %span 秒 .form__field = f.text_area :text, placeholder: "text", rows: "10" .form__field = f.collection_check_boxes :category_ids, Category.all, :id, :name do |category| = category.label do %tr %td= category.check_box %td= category.text .form__field = f.submit "SEND"
あなたの回答
tips
プレビュー