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

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

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

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

Ruby on Rails 6

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

Q&A

0回答

721閲覧

[Rails] ActiveStorageを使った画像の保存でつまづいています

YUYUI

総合スコア0

Ruby

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

Ruby on Rails 6

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

0グッド

0クリップ

投稿2020/12/13 06:40

前提・実現したいこと

投稿機能を実装しようとしてるのですが、ActiveStorageを使いツイッターのような画像と
一緒に文を投稿できるようにしたいです。保存の段階でエラーが起きました。

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

下記はエラー画面の画像です。
https://i.gyazo.com/16315fb483b2e0e39987370b8ca83227.png

https://i.gyazo.com/be9cd088c8c3a902208bd698af3cb750.png

ActiveSupport::MessageVerifier::InvalidSignature at /tweets ActiveSupport::MessageVerifier::InvalidSignature

該当のソースコード

ruby

1 def create 2 #binding.pry 3 @tweets = Tweet.create(tweet_params) 4 end

試したこと

Strong Parametersが適切に設定できていないっぽいので確認してみましたがわかりませんでした。

def tweet_params
params.require(:tweet).permit(:image, :text).merge(user_id: current_user.id)
end

ruby

1tweetsコントローラーです 2 3class TweetsController < ApplicationController 4 before_action :set_tweet, only: [:edit, :show, :update, :destroy] 5 before_action :move_to_index, except: [:index, :show, :search] 6 7 def index 8 @tweets = Tweet.includes(:user).order("created_at DESC") 9 end 10 11 def new 12 @tweet = Tweet.new 13 end 14 15 def create 16 #binding.pry 17 @tweets = Tweet.create(tweet_params) 18 end 19 20 def destroy 21 if @tweet.destroy 22 redirect_to root_path 23 end 24 end 25 26 def edit 27 end 28 29 def update 30 @tweet.update(tweet_params) 31 end 32 33 def show 34 @comment = Comment.new 35 @comments = @tweet.comments.includes(:user) 36 end 37 38 def search 39 @tweet = Tweet.search(params[:keyword]) 40 end 41 42 private 43 def tweet_params 44 params.require(:tweet).permit(:image, :text).merge(user_id: current_user.id) 45 end 46 47 def set_tweet 48 @tweet = Tweet.find(params[:id]) 49 end 50 51 def move_to_index 52 unless user_signed_in? 53 redirect_to action: :index 54 end 55 end 56end 57 58下記マイグレーションファイルになります 59 60class CreateTweets < ActiveRecord::Migration[6.0] 61def change 62 create_table :tweets do |t| 63 t.text :text, null: false 64 t.references :user, null: false, foreign_key: true 65 t.timestamps 66 end 67 end 68end 69 70下記はtweetモデルです 71 72belongs_to :user 73has_one_attached :image 74validates :text, presence: true 75 76下記はroutesです 77 78Rails.application.routes.draw do 79 devise_for :users 80 root 'tweets#index' 81 resources :users 82 resources :tweets do 83 resources :comments, only: [:create] 84 collection do 85 get 'search' 86 end 87 end 88end 89 90下記は投稿画面のviewです 91 92<div class="tweets-contents"> 93 <div class="tweets-main"> 94 <%= form_with model: @tweets, url: tweets_path, local: true do |f| %> 95 96 97 <div class="img-upload"> 98 <div class="weight-bold-text"> 99 投稿画像 100 </div> 101 <div class="click-upload"> 102 <p> 103 クリックしてファイルをアップロード 104 </p> 105 <%= f.file_field :image, id:"posts-image" %> 106 <div id="image-list"></div> 107 </div> 108 </div> 109 110 <div class="new-posts"> 111 <div class="posts-explain"> 112 <div class="weight-bold-text"> 113 投稿内容 114 </div> 115 <%= f.text_area :text, class:"posts-text", id:"post-info", placeholder:"text" ,rows:"7" ,maxlength:"1000" %> 116 </div> 117 </div> 118 <%# 下部ボタン %> 119 <div class="sell-btn-contents"> 120 <%= f.submit "投稿する" ,class:"sell-btn" %> 121 </div> 122 <%# /下部ボタン %> 123 </div> 124 <% end %> 125</div> 126

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

簡単なsnsのアプリケーションを開発中の超初心者です。
よろしくお願いいたします。

ruby '2.6.5'
'rails', '~> 6.0.0'
'mysql2', '0.5.3'

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問