Rails関連のことを調べてみた2022年12月02日

Rails関連のことを調べてみた2022年12月02日

動画の結合処理を実装したくて試行錯誤の末に、MediaConvertで頑張った話。

## ****この記事に期待できること****

複数の動画を結合する処理の流れがわかる
****AWS Elemental MediaConvert****の扱い方がわかる
**AWS Lambda**のメリットと使い所がわかる

## なぜ、「動画の結合」をしたいと思ったか?

実は私、パントマイムのパフォーマー&芝居役者として活動してまして、今は映像制作を仲間と一緒にやっています。こんな感じのチャンネル↓
『アニメOPっポイヤツ』
[https://www.youtube.com/c/Poiyatsu](https://www.youtube.com/c/Poiyatsu)
![ポイヤツ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2984421/3cfb4c39-b53b-7757-245b-d6855f1857ea.jpeg)

「映像作りって大変だけど、楽しいなー。視聴者さんとも一緒に作れたら、もっと楽しいのになぁ」と考えていた所、
**ユーザーさんの投稿動画と、私「ハナムラ」の

元記事を表示

Ruby 3.0 に含まれる非互換「位置引数とキーワード引数の分離」の乗り越え方

## 0. はじめに

“`text
おはよう、Ruby エンジニアの皆さん。2022 年も年の瀬となりましたが、元気にしていますか?

実を言うと Ruby 2.7.x はもうだめです。突然こんなこと言ってごめんね。

でも本当です。今年の 4/12 に Ruby 2.7.6 がリリースされました。

それが終わりの合図です。程なく始まるセキュリティメンテナンスフェーズは 1 年しかないので気をつけて。

それがやんだら、少しだけ間をおいて終わりがきます。
“`

**参考:** [「実を言うと、地球はもうだめです。」](https://alu.jp/series/%E6%9C%80%E7%B5%82%E5%85%B5%E5%99%A8%E5%BD%BC%E5%A5%B3/article/V6fWmBCTyJYu3xZwTCCi)

## 1. 要するに、来年の 4 月で Ruby 2.7.x のサポートが終了します

そんなわけで、見て見ぬ振りをしてきた、あなたのプロジェクトの Ruby バージョンの更新も、ついには年貢の納め時というわけです。まだ時間は残されていますので、年内

元記事を表示

Turbo 1: はじめに

:::note
この記事は[Google翻訳](https://translate.google.co.jp/)の結果を編集したものです。
:::

https://turbo.hotwired.dev/handbook/introduction

TurboにはJavaScriptをあまり使用せずに高速かつ現代的で漸進的に強化されたWebアプリケーションを作成するためのいくつかの手法がバンドルされています。これはすべてのロジックをフロントエンドに配置してアプリのサーバーサイドをJSON APIくらいにとどめる流行のクライアントサイドフレームワークのより単純な代替手段を提供します。

TurboではサーバーにHTMLを直接配信させることができます。つまり、アクセス許可を確認するためのすべてのロジック、ドメインモデルと直接対話すること、およびアプリケーションのプログラミングに必要なその他すべてのことをお好みのプログラミング言語内で多かれ少なかれ排他的に行うことができます。もうJSON分割の両側でロジックをミラーリングしなくなります。すべてのロジックはサーバー上にあり、ブラウザーは最終的な

元記事を表示

Rails6 を Docker で開発する為に準備する

# 初めに

プロジェクトの技術選定の中で、`Rails6` を検討しており、**「せっかく新規で開発するならDockerで開発したいよね」** という話になったので、`Docker` を使って `Rails` プロジェクトの作成までの手順をまとめておきます。

# 概要

## 事前準備

– Docker for mac のインストール
– base Image の取得 docker pull ruby:2.6.5-alpine3.10
(これにした理由は、Small. Simple. Secure だからです)

## Rails プロジェクトの作成

### 1. Login to docker container

Docker container に入って `Rails` プロジェクトを作成します。
作業ディレクトリで以下のコマンドを実行します。

“`.bash
$ docker run -v $PWD:/usr/src/ –rm -it ruby:2.6.5-alpine3.10 /bin/sh -c /bin/sh
“`

`-v $PWD:/usr/src/

元記事を表示

【実践版】Rails アプリを Cloud Run で動かしてみよう

[【超シンプル版】Rails アプリを Cloud Run で動かしてみよう](https://qiita.com/kato-hiroaki/items/b8abe200b4b653f0e655)で Cloud Run を使って Rails アプリを動かしてみました。
今回はもう少し実践で使えるようにデータベース、環境変数の設定、ログの収集、ビルドの自動化を構築していきたいと思います。

## 前提

以下の構成で作っていきます!
![Untitled-2022-11-29-2139.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2322836/c701f2fa-0e28-f558-833c-3212ce6a2d96.png)

## 追加で利用するプロダクト

– Cloud SQL
– Cloud Logging
– Secret Manager

## 構築の流れ

1. Rails アプリ作成
1. Cloud SQL と接続する
1. Secret Manager を利用する
1. Clou

元記事を表示

【Rails6】コンソールでアソシエーションを理解しよう①(一対多)

この投稿は、
[DMM WEBCAMP mentor Advent Calendar 2022](https://qiita.com/advent-calendar/2022/infratop_mentor)
の投稿2日目のエントリーです。

1日目は @Keichan_15 さんで
[Rails I18n(日本語化)を使用する場合の躓きポイント徹底攻略](https://qiita.com/Keichan_15/items/eae011dccea44abda768)
です。「翻訳ファイルあたらね〜」となる事は多いハズなので、初学者の方には嬉しい記事ですね。

## はじめに

最近DMMでメンターをやらせていただいております。 @tomoaki-kimura です。
RailsはRailsが隠しているコードを理解する事で、ぐっと扱いが上手になります。
今回は、今更のアソシエーションをRailsコンソールを使ってRailsのアソシエーションを理解していきましょう。

## 環境と前提

– ruby 3.1.1
– Rails 6.1.7
– yarn 1.22.18

(今回モデルし

元記事を表示

Rails I18n(日本語化)を使用する場合の躓きポイント徹底攻略

# はじめに
こんにちは!
記念すべき **DMM WEBCAMP mentor Advent Calendar 2022** :christmas_tree: **1日目** を担当します @Keichan_15 です!

普段はDMM WEBCAMPで受講生さんの質問対応などを行うメンターとして働いております!
今回は、日頃から受講生さんの対応を行う中で特に躓きが多かった箇所である **「I18nを用いた日本語化が反映されない」** 問題を解決していこうぜ! といった記事になります。

本記事では主に、
– **I18nって何のこと?**
– **日本語化したのに反映されないよ…**

と疑問や悩みをお持ちである、多くの方々の助けとなれれば幸いです!

また本記事が自身のQiita初執筆になりますので、多々目に余る箇所などがあるかとは思いますが温かい目で見守って頂けますと幸いです…。
よろしくお願い致します!

# 1. そもそも I18n は何ができるの?
まず I18n とは何なのでしょうか。
I18n は **internat

元記事を表示

Can’t connect to MySQL server on ‘xx’ (115)エラーの解決方法と思わぬ落とし穴

# 起きた事象
MySQLとRailsの環境をdocker-composeで作成し、DBを作成しようとしたら下記のエラーになりました。

“`java:terminal
$ docker-compose run web rails db:create



Can’t connect to MySQL server on ‘db’ (115)
Couldn’t create ‘app_development’ database. Please check your configuration.
rails aborted!
ActiveRecord::ConnectionNotEstablished: Can’t connect to MySQL server on ‘db’ (115)

Caused by:
Mysql2::Error::ConnectionError: Can’t connect to MySQL server on ‘db’ (115)

Tasks: TOP => db:create
(See full trace by running task w

元記事を表示

「ちょっとつくってみたんですけど」でめちゃくちゃ話が進んだ話

12月になりました。
今年もアドベントカレンダーを書いていこうと思います!!

この記事はモチベーションクラウドシリーズ [Advent Calendar 2022](https://qiita.com/advent-calendar/2022/mcs)の1日目の記事になります

最近プロダクト開発チームで仮説検証を回していきたい!という潮流が来ており、そのなかでやったプロトタイプ開発が思ったよりウケがよかったので、良かったことをまとめようと思います。

## なぜやったのか

もともとチームとして開発したアウトプットがちゃんと顧客に届いているかどうかを測定しよう。という流れはあり、僕たちも機能開発等をする際はアウトカムを設定して開発を行っていました。
ただ、「このプロダクトをどのようにユーザーが使って、どこで詰まっているのか」をちゃんと観測して、使いづらいところや、価値が届いていないところの改善をすることはあまりできていませんでした。

チームでもっと利用データをみて、改善サイクルを回していこう!!となり、そのためにユーザの利用データ取得を行ったり、課題の仮説を議論したりしていまし

元記事を表示

rails7にjsのブラウザバージョン互換性テスト導入

# はじめに
今回は`eslint-plugin-compat`を使ってブラウザのバージョンテストを導入しました。
githubに手順が載っているので、それ通りやってもらえればできます。

https://github.com/amilajack/eslint-plugin-compat

# ダウンロード
yarnで落としました
“`
yarn add eslint-plugin-compat
“`

# ファイル変更
“`eslintrc.json
{
+ “plugins”: [“compat”],
+ “extends”: [“plugin:compat/recommended”],
+ “env”: {
+ “browser”: true
+ },
// …
}
“`
“`package.json
{
// …
+ “browserslist”: [
+ “defaults”
+ ]
}
“`

# 思ったこと
思ってた数倍簡単に導入することができました。

これを

元記事を表示

includeしてるのにN+1問題が発生した理由

### 初めに
イベントの日程調整アプリのrailsAPI作成中に躓いた時の備忘録

1. answers_controllerのupdateアクションで紐づくschedule_answers(回答ステータス)を編集しようとするとN+1問題が発生した
2. HTTPリクエスト送信一度目はN+1問題が起きるがschedule_answerの更新は保存はされており、そのまま続けて送信するとupdateは完了

### ER図
![スクリーンショット 2022-12-01 15.46.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629116/6d84b59d-e9f6-54ee-646c-8982a35d4a4c.png)

### 原因
accepts_nested_attributes_forで、
– answersモデルとschedule_answers
– possible_datesとschedule_answers

とを紐付けていたため、たとえanswer経由でも、schedules

元記事を表示

ActiveRecordのvalidationとbefore_saveの実行順序

順番は以下。

“`
validation1 -> validation2 -> before_save1 -> before_save2
“`

– validation1 でinstaneのerrosにエラーを追加しても、validation2は続いて呼ばれる。
– validationが全て終わった時点で、そのinstanceのerrorsが空でない場合、before_saveは呼ばれない。
– before_save1 で throw(:abort)した場合、before_save2は呼ばれない
– before_save1 内で errosにエラーを追加することもできる。

元記事を表示

fly.ioのビルドをやり直す。(備忘録)

railsをfly.ioにデプロイする時の備忘録です。

ビルドからやり直そう??ってなった時のメモ書き的なやつです。
ちゃんと調べたら一発でやり直すコマンドとかあると思うので、急いでる人向けです。

半ば強引に消しているので、ご自分のアプリはしっかりコピーを取っておいてください。

# STEP1. fly.ioのページから自分のdb関連を消す
1-1.まずはDashboardを開きましょう
https://fly.io/dashboard

1-2.開いたらApps内の内容(スクショ赤線範囲内)を消していきましょう

一度もリリースしたアプリがない方は全て消して大丈夫です。

![apps_range.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1874115/9ecd3fb3-e904-3280-1f9e-413fd9bd88c4.png)

`消すやつを選択`→ `サイドバーのsettings` → `Delete app` → `ファイルの名前を打ち込んで「Yes, delete it」`

元記事を表示

Hotwire勉強会ログ (1) Turbo

# はじめに

Rails 7から標準となったHotwireについて勉強会をしました。前半はTurboで後半がStimulusです。場所はSENQ六本木のスカイテラスで、晴れていたのですが少し寒かったかもしれません。

https://www.senq-web.jp/office/roppongi

Railsで有名な万葉さんもHotwireをやっていくそうです。

https://note.com/everyleaf/n/ncc0b77578c58

私の場合は最近のRailsのJavaScriptの機能は使っていなくて、Turbolinksはオフにすることが多かったです。Rails 7ではHotwireが標準になってrails-ujsもフェードアウトしていきそうなので、ここは観念して勉強しようと思いました。

そしてForkwellさんのDHHへのインタービュー動画を見たことも影響しました。