クックパッドのようなアプリを制作中でformオブジェクトを利用した画像投稿を実装中なのですが、ActiveSupport::MessageVerifier::InvalidSignatureをエラーが返されていて、保存もできていないです。具体的な解決方法を教えていただけないでしょうか。お願いいたします。
app/views/recipes/new.html.erb
ruby
1<div class="contents row"> 2 <div class="container"> 3 <h3>投稿する</h3> 4 <%= form_with(model: @main_menu, url: recipes_path, local: true) do |form| %> 5 <%# <%= render 'error_messages', model: @main_menu %> %> 6 <div class="field"> 7 <%= form.label :name , "料理名" %> 8 <%= form.text_field :name, placeholder: "親子丼" %> 9 </div> 10 <div class="field"> 11 <%= form.label :kcal , "カロリー" %> 12 <%= form.text_field :kcal, placeholder: "400" %> 13 </div> 14 <div class="field"> 15 <%= form.label :image , "写真" %> 16 <%= form.text_field :image, placeholder: "URL" %> 17 <%# <%= image_tag main_menu.image.variant(resize: '500x500'), class: 'main_menu-image' if main_menu.image.attached? %> %> 18 </div> 19 <div class="field"> 20 <%# <%= form.label :ingredient , "材料" %> %> 21 <%# <%= form.text_area :ingredient, placeholder: "白菜 1/2" %> %> 22 </div> 23 <div class="field"> 24 <%= form.label :expiration , "説明" %> 25 <%= form.text_area :expiration, placeholder: "とろとろ卵の甘じょっぱい親子丼" %> 26 </div> 27 <div class="field"> 28 <%# <%= form.label :recipe , "レシピ" %> %> 29 <%# <%= form.text_area :recipe, placeholder: "鍋と玉ねぎを入れる" %> %> 30 </div> 31 <%= form.submit "投稿する" %> 32 <% end %> 33 </div> 34</div>
app/controllers/recipes_controller.rb
ruby
1class RecipesController < ApplicationController 2 def index 3 @recipes = Recipe.all 4 end 5 6 def new 7 @main_menu = MainMenu.new 8 end 9 10 def create 11 @main_menu = MainMenu.new(recipe_params) 12 if @main_menu.save 13 redirect_to action: :index 14 else 15 render action: :new 16 end 17 end 18 19 private 20 def recipe_params 21 params.require(:main_menu).permit(:name, :image, :expiration, :kcal).merge(user_id: current_user.id) 22 end 23end
app/models/main_menu.rb
ruby
1class MainMenu < ApplicationRecord 2 belongs_to :user 3 has_one :recipe 4 has_one :ingredient 5 has_one_attached :image 6 7 with_options presence: true do 8 validates :name 9 validates :expiration 10 validates :kcal 11 validates :image 12 end 13end 14
画像
https://gyazo.com/43d792407d40182facfc20bbb429f642
試してみたこと
・binding.pryでparamsの中身の確認をしたが、具体的な解決方法はみつけられなかった。
console
1"main_menu"=>{"name"=>"ご飯", "kcal"=>"300", "image"=>"#<ActiveStorage::Attached::One:0x00007fc959e7ed28>", "expiration"=>"テスト"}, "commit"=>"投稿する", "controller"=>"recipes", "action"=>"create"} permitted: false>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。