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

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

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

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

Ruby on Rails

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

1862閲覧

Rails ActiveRecord::StatementInvalid in PostsController#create 新規投稿機能

masaosan18

総合スコア65

Ruby

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

Ruby on Rails

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/06/14 17:54

プログラミング初心者です。

Railsでアプリを作成していますが、以下のようなエラーが出てしまい進めずにいます。

インスタのようなアプリで、新規画像が投稿できたら、画像はDBに保存→画像一覧ページ(top_path)に戻るようにしたいのですが、止まっています。

お力を貸してください。

イメージ説明

class PostsController < ApplicationController # # アクション処理に入る前に認証 before_action :authorize # 新規投稿ページ def new @post = Post.new end # 投稿処理 def create @post = Post.new(post_params) upload_file = params[:post][:upload_file] # 投稿画像がない場合 if upload_file.blank? flash[:danger] = "投稿には画像が必須です。" redirect_to new_post_path and return end # 画像のファイル名取得 upload_file_name = upload_file.original_filename output_dir = Rails.root.join('public', 'images') output_path = output_dir + upload_file_name File.open(output_path, 'w+b') do |f| f.write(upload_file.read) end # post_imagesテーブルに登録するファイル名をPostインスタンスに格納 @post.post_images.new(name: upload_file_name) # データベースに保存 if @post.save flash[:success] = "投稿しました。" redirect_to top_path and return else flash[:danger] = "投稿に失敗しました。" redirect_to new_post_path and return end end # 認証チェック def authorize redirect_to top_path unless user_signed_in? end private def post_params params.require(:post).permit(:caption).merge(user_id: current_user.id) end end

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

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

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

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

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

guest

回答2

0

「ActiveRecord StatementInvalid Mysql2 Error: Incorrect string value」で検索すると
DBもしくはカラムの文字コードに問題があるケースが多いようなので
確認してみるとよいでしょう。

なお、絵文字を想定する場合はutf8ではなくutf8mb4が必要な事に注意が必要です。

投稿2020/06/14 21:56

asm

総合スコア15147

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

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

masaosan18

2020/06/15 05:13

ありがとうございます。私も検索してみまして、文字コードをdatabase.ymlで編集してみましたが改善されずに困っています。
asm

2020/06/15 05:31 編集

database.ymlのcharsetを編集した場合database(もしくはtable)の作り直しが必要だったように記憶していますが それらの作業を行いましたか?
guest

0

自己解決

phpmyadminの文字コードを編集したら治りました。

投稿2020/06/19 15:07

masaosan18

総合スコア65

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問