質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
ActiveX

ActiveXは、Microsoft社が開発したプログラミング技術群の総称。特定の技術ではなく、さまざまな技術を指しますが、一般的にActiveXといった場合は「ActiveXコントロール」を指します。

Ruby

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

Ruby on Rails 6

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

Ruby on Rails

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

Q&A

0回答

2131閲覧

「ActiveSupport::MessageVerifier::InvalidSignature」 エラーを解決したいです

chichida

総合スコア0

ActiveX

ActiveXは、Microsoft社が開発したプログラミング技術群の総称。特定の技術ではなく、さまざまな技術を指しますが、一般的にActiveXといった場合は「ActiveXコントロール」を指します。

Ruby

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

Ruby on Rails 6

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

Ruby on Rails

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

0グッド

0クリップ

投稿2021/03/20 14:16

編集2021/03/20 14:26

前提・実現したいこと

Ruby on Railsを用いて保育園との連絡帳のようなシステムを作っています。
新規に連絡帳機能を作成する実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

フォームで各項目を入力し、連絡帳を作成しようとすると下記のエラーメッセージが表示されます。

ruby

1ActiveSupport::MessageVerifier::InvalidSignature 2 3【該当箇所】 4def create 5 @contact = Contact.create(contact_params)  #この部分がハイライトされています 6 if @contact.save 7 redirect_to root_path 8 else

Gyazo画像

該当のソースコード

ruby

1【controllers/contacts_controller.rb】 ※必要と思われる箇所のみを抜粋しています 2 3 def new 4 @contact = Contact.new 5 end 6 7 def create 8 @contact = Contact.create(contact_params) 9 if @contact.save 10 redirect_to root_path 11 else 12 render new_contact_path 13 end 14 end 15 16 17private 18def contact_params 19 params.require(:contact).permit(:image, :group_id, :last_name_c_j, :first_name_c_j, :last_name_c_k, :first_name_c_k ).merge(parent_user_id: current_parent_user.id) 20end

ruby

1【models/contact.rb】 ※必要と思われる箇所のみを抜粋しています 2 3belongs_to :parent_user 4has_one_attached :image

ruby

1【views/contacts/new.html.erb】 2 3<div class="form__wrapper"> 4 5 <%= form_with(model: @contact, local: true) do |f| %> 6 <%= render 'error_messages', model: f.object %> 7 <%= render 'form', model: f.object , locals: { contact: @contact } %> 8 <% end %> 9 10</div> 11

ruby

1【views/contacts/_error_messages.html.erb】 2 3<% if model.errors.any? %> 4 <div class="error-alert"> 5 <ul> 6 <% model.errors.full_messages.each do |message| %> 7 <li class='error-message'><%= message %></li> 8 <% end %> 9 </ul> 10 </div> 11<% end %> 12

ruby

1【views/contacts/_form.html.erb】 2 3<div class="form__wrapper"> 4 <h2 class="page-heading">新規連絡帳の作成ページ</h2> 5 6 <%= form_with(model: @contact, local: true) do |f| %> 7 8 <%= render 'error_messages', model: f.object %> 9 10 <div class="field"> 11 <%= f.label :group_id, "お子さんの組" %><br /> 12 <%= f.collection_select(:group_id, Group.all, :id, :name, {}, {class:"select-box", id:"class"}) %> 13 </div> 14 15 <div class="field"> 16 <%= f.label :last_name_c_j, "お子さんの名前(名字)" %><br /> 17 <%= f.text_field :last_name_c_j %> 18 </div> 19 20 <div class="field"> 21 <%= f.label :first_name_c_j, "お子さんの名前(名前)" %><br /> 22 <%= f.text_field :first_name_c_j, class: :form__text %> 23 </div> 24 25 <div class="field"> 26 <%= f.label :last_name_c_k, "お子さんの名字(カナ)" %><br /> 27 <%= f.text_field :last_name_c_k %> 28 </div> 29 30 <div class="field"> 31 <%= f.label :first_name_c_k, "お子さんの名前(カナ)" %><br /> 32 <%= f.text_field :first_name_c_k, class: :form__text %> 33 </div> 34 35 <div class="field"> 36 <%= f.label :image, "お子さんの写真" %><br /> 37 <%= f.file_field :image %> 38 </div> 39 40 41 <div class="actions"> 42 <%= f.submit "連絡帳を作成する", class: :form__btn %> 43 </div> 44<% end %> 45 46 47 48 49</div> 50

試したこと

pry-rails導入しparamsを確認しました

ruby

1 43: def create 2 => 44: binding.pry 3 45: @contact = Contact.create(contact_params) 4 46: if @contact.save 5 47: redirect_to root_path 6 48: else 7 49: render new_contact_path 8 50: end 9 51: end 10 11[1] pry(#<ContactsController>)> params 12=> <ActionController::Parameters {"authenticity_token"=>"XXXXXXXXXXXXXXXXXXXXXXXXX==", "contact"=>{"group_id"=>"2", "last_name_c_j"=>"子供名字いち", "first_name_c_j"=>"子供名前いち", "last_name_c_k"=>"コドモミョウジイチ", "first_name_c_k"=>"コドモナマエイチ", "image"=>"child_1.jpg"}, "commit"=>"保存する", "controller"=>"contacts", "action"=>"create"} permitted: false> 13[2] pry(#<ContactsController>)> contact_params 14=> <ActionController::Parameters {"image"=>"child_1.jpg", "group_id"=>"2", "last_name_c_j"=>"子供名字いち", "first_name_c_j"=>"子供名前いち", "last_name_c_k"=>"コドモミョウジイチ", "first_name_c_k"=>"コドモナマエイチ", "parent_user_id"=>1} permitted: true> 15[3] pry(#<ContactsController>)> @contact 16=> nil

記述ミスがないかの確認をしました

ストロングパラメータなどのカラム名に記載ミスがないかなどの確認を行いました。

考察

エラーメッセージからActiveStorageが原因か推測し、様々な検索を行ったのですが解決方法を見つけることができませんでした。

補足情報(FW/ツールのバージョンなど)

  • rails (6.0.0)
  • active storage (6.0.3.5)

学習を始めたばかりの初学者のため、質問に不備などありましたら申し訳ございません。
また、必要な項目が抜けているなどありましたら、お手数ですが、ご指摘いただけると助かります。

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

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

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

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

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

winterboum

2021/03/21 00:08

MessageVerifier::InvalidSignature ですから tokenとかが正しくないということのようです。 「Raises InvalidSignature if the message was not signed with the same secret or was not Base64-encoded.」 よく有るのは authenticity_token をミスった時ですが、その場合この例外が立った経験がないので ?? また、普通にやっていればauthenticity_tokenをミスることは無いので ?? その例外が立つまでのlogみてなにかありませんか
chichida

2021/03/21 01:10 編集

winterboumさん ご回答頂きましてありがとうございます! ターミナルのログは下記のようになっており、authenticity_tokenはミスっていないかと思われました。 また、『SELECT `parent_users`.* FROM `parent_users` WHERE `parent_users`.`id` = 1 LIMIT 1』からparent_usersコントローラー(決済機能を実装した際に追加したカード情報の詳細表示や、マイページへのリンクなどを記述したコントローラー)のidが競合して登録ができないかと推察し、contorollers/parent_users_controller.rbのクラス名をParentUsersControllerからCardUsersControllerへ修正し、ファイル名もparent_users_controller.rbからcard_users_controller.rbに修正し、ローカルサーバーの再起動を実施し、確認を行いましたが、変化はありませんでした。 【ターミナルのログ】 app/controllers/contacts_controller.rb:44:in `create' Started POST "/contacts" for ::1 at 2021-03-21 09:48:47 +0900 Processing by ContactsController#create as HTML Parameters: {"authenticity_token"=>"HgyEpWV3eDUXZDSCRArVMTjEHB6u1h2x1/Zd3NiPbdsUhBvfPAR0mdOZKoBw6fWs+Fvsk+pBiFoDjijCY8Bueg==", "contact"=>{"group_id"=>"2", "last_name_c_j"=>"子供名字いち", "first_name_c_j"=>"子供名前いち", "last_name_c_k"=>"コドモミョウジイチ", "first_name_c_k"=>"コドモナマエイチ", "image"=>"child_1.jpg"}, "commit"=>"連絡帳を作成する"} ParentUser Load (0.5ms) SELECT `parent_users`.* FROM `parent_users` WHERE `parent_users`.`id` = 1 ORDER BY `parent_users`.`id` ASC LIMIT 1 (0.1ms) BEGIN ↳ app/controllers/contacts_controller.rb:44:in `create' ParentUser Load (0.3ms) SELECT `parent_users`.* FROM `parent_users` WHERE `parent_users`.`id` = 1 LIMIT 1 ↳ app/controllers/contacts_controller.rb:44:in `create' (0.1ms) ROLLBACK ↳ app/controllers/contacts_controller.rb:44:in `create' Completed 500 Internal Server Error in 8ms (ActiveRecord: 1.0ms | Allocations: 5513) ActiveSupport::MessageVerifier::InvalidSignature (ActiveSupport::MessageVerifier::InvalidSignature):
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問