🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1849閲覧

画像投稿機能の実装でActiveSupport::MessageVerifier::InvalidSignatureが出てくる

snsan

総合スコア5

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/01/09 03:59

クックパッドのようなアプリを制作中で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>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

main_menuコントローラーに記述していたimageのバリデーションとhas_one_attachedをrecipeモデルに移動させた。
おそらく設計段階からの修正方法であるので、理想的な解決ではないと思った。

投稿2021/01/09 06:01

snsan

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問