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

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

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

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

Q&A

0回答

419閲覧

ストロングパラメータの検証エラー

anguraaaa

総合スコア21

Ruby on Rails 5

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

0グッド

1クリップ

投稿2020/03/22 22:49

編集2020/03/23 00:18

前提・実現したいこと

railsでwebアプリケーションを作成しています。
ストロングパラメーターの検証エラーを解決したいです。

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

ActiveSupport::MessageVerifier::InvalidSignature

該当のソースコード

cards_controller.rb class CardsController < ApplicationController def index @cards = Card.all end def new @card_lists = CardList.all @point_lists = PointList.all @coupon_lists = CouponList.all @card = Card.new end def create @card = Card.new(card_params) if @card.save redirect_to user_cards_path(@card), notice: "カードを追加しました" else render "new" end end private def card_params params.require(:card).permit( :name, :address, :opening_hours, :closing_hours, :phone_num, :url, :image, :point_content, :coupon_content).merge(user_id: params[:user_id]) end end

createアクションの@card = Card.new(card_params)でエラーが起きています

cards/new.html.haml =render "layouts/header" .search .new-contents.row - @card_lists.each do |card_list| .content-card.col-lg-5 =image_tag card_list.image, class:"content-card__image" %ul.content-card__info %li.content-card__info__name =card_list.name - @point_lists.each do |point_list| %li.content-card__info__point =point_list.content - @coupon_lists.each do |coupon_list| %li.content-card__info__coupon =coupon_list.content =form_with model:@card, url: user_cards_url, method: :post, local: true do |f| - @card_lists.each do |card_list| =f.hidden_field :name, value: card_list.name =f.hidden_field :address, value: card_list.address =f.hidden_field :opening_hours, value: card_list.opening_hours =f.hidden_field :closing_hours, value: card_list.closing_hours =f.hidden_field :phone_num, value: card_list.phone_num =f.hidden_field :url, value: card_list.url =f.hidden_field :image, value: card_list.image - @point_lists.each do |point_list| =f.hidden_field :point_content, value: point_list.content - @coupon_lists.each do |coupon_list| =f.hidden_field :coupon_content, value: coupon_list.content = f.submit "追加", class: 'btn btn-success'

hidden_fieldを使ってformを作成しました。

cardsのマイグレーションファイル(1) class CreateCards < ActiveRecord::Migration[5.2] def change create_table :cards do |t| t.references :user, foreign_key: true t.string :name, null: false t.string :address, null: false t.time :opening_hours, null: false t.time :closing_hours, null: false t.string :phone_num, null: false t.text :url t.timestamps end end end
cardsのマイグレーションファイル(2) class AddContentToCards < ActiveRecord::Migration[5.2] def change add_column :cards, :point_content, :string add_column :cards, :coupon_content, :string end end
cardを新規作成したときのパラメータです Started POST "/users/1/cards" for ::1 at 2020-03-23 07:22:01 +0900 Processing by CardsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"ms9I2+wCDBTiSRLdcKSPNm1RRdqq632cKvcW0bZ9lGRfrcer0KAgWhvrZ6UfI3FLLYohIPq7z9EV5Ez5csi2qg==", "card"=>{"name"=>"久兵衛", "address"=>"東京", "opening_hours"=>"2000-01-01 11:00:00 UTC", "closing_hours"=>"2000-01-01 22:00:00 UTC", "phone_num"=>"9999999999", "url"=>"http://www.kyubey.jp/", "image"=>"#<ActiveStorage::Attached::One:0x00007f94b8e92498>", "point_content"=>"いか二貫", "coupon_content"=>"200円引き"}, "commit"=>"追加", "user_id"=>"1"} Completed 500 Internal Server Error in 4ms (ActiveRecord: 0.0ms)

試したこと

MessageVerifierについて調べました。
Cookieで改ざんのチェックに利用していて、検証をおこなっているとわかりました。
なのでauthenticate_tokenの検証でエラーになっていると思い、
下記の記事を参考に
ブラウザを閉じて、やり直しましたがうまくいきませんでした。
https://masamitsu-murase.blogspot.com/2014/06/rails-csrf.html

ご教授のほどよろしくお願いいたします

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問