- 1. 動画の結合処理を実装したくて試行錯誤の末に、MediaConvertで頑張った話。
- 2. Ruby 3.0 に含まれる非互換「位置引数とキーワード引数の分離」の乗り越え方
- 3. Turbo 1: はじめに
- 4. Rails6 を Docker で開発する為に準備する
- 5. 【実践版】Rails アプリを Cloud Run で動かしてみよう
- 6. 【Rails6】コンソールでアソシエーションを理解しよう①(一対多)
- 7. Rails I18n(日本語化)を使用する場合の躓きポイント徹底攻略
- 8. Can’t connect to MySQL server on ‘xx’ (115)エラーの解決方法と思わぬ落とし穴
- 9. 「ちょっとつくってみたんですけど」でめちゃくちゃ話が進んだ話
- 10. rails7にjsのブラウザバージョン互換性テスト導入
- 11. includeしてるのにN+1問題が発生した理由
- 12. ActiveRecordのvalidationとbefore_saveの実行順序
- 13. fly.ioのビルドをやり直す。(備忘録)
- 14. Hotwire勉強会ログ (1) Turbo
- 15. Hotwireへようこそ
- 16. puma-dev 環境での RubyMine を使ったデバッグ方法
- 17. プログラミングが副業になるロードマップ
- 18. 【Vue】railsにVueをインストールしてみた。
- 19. 画像をクリックしてファイルを選択して即時変更する
- 20. Vue3、Rails7系を使って「Hello Vue」を表示させるまで
動画の結合処理を実装したくて試行錯誤の末に、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/dashboard1-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へのインタービュー動画を見たことも影響しました。
【Vue】railsにVueをインストールしてみた。
# バージョン情報
* ruby 3.0.0
* rails 6.1.6.1
* yarn 1.22.19今回は、ここからVue3を導入していく。
# インストール
インストールコマンドは以下の通り。
“`
$ yarn add vue@next vue-loader@next @vue/compiler-sfc
“`
これを実行すると以下のように出力されてインストール成功。5分とかからない。
“`
yarn add v1.22.19
[1/4] Resolving packages…
[2/4] Fetching packages…
[3/4] Linking dependencies…
[4/4] Building fresh packages…
success Saved lockfile.
success Saved 12 new dependencies.
info Direct dependencies
├─ @vue/compiler-sfc@3.2.45
├─ vue-loader@17.0.1
└─ vue@3.2.36
info All d
画像をクリックしてファイルを選択して即時変更する
意外と参照できる記事がなかったので記述(基本的すぎて書いてないだけかも…)
通常の場合は“`ファイルを選択する“`ボタンを押して、submitボタンを押すことで変更が適用されます。
これを画像をクリックして、ファイルを開いたと同時に変更が適用されるようにしていきます。# 求める挙動
画像をクリックしてファイルを選択して即時変更する![qiita_file.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77737/84b7e8f9-8160-9f1f-a699-247fa0218072.gif)
# 実装手順
①「ファイルを選択」を押して、ファイルを選択して、submitを押せば画像が変更できるようになる
②画像をクリックして、ファイルを選択して、submitを押せば画像が変更できるようになる
③画像をクリックして、ファイルを選択して、submitを押さなくても変更が即時適用される# 実装
### ①「ファイルを選択」を押して、ファイルを選択して、submitを押せば画像が変更で
Vue3、Rails7系を使って「Hello Vue」を表示させるまで
Vue3、Rails7系を使って、何かアプリを作ってみたいなぁと思い、環境構築の段階で
学んだことを備忘録として残そうと思いました。# 環境
ruby 3.1.0
Rails 7.0.4
vue@3.2.41
# railsの初期化railsの初期化(アプリ作成)
“`ruby
raiils new sample_app
“`
# vueの初期化**次にvueを導入していくが、いきなりつまりポイント**
railsの標準に搭載されているwebpackerでvueを導入していくつもりが・・・
“` ruby
rails webpacker:install: vue
=> Don’t know how to build task ‘webpacker:install:vue’
“`コマンドが使えない・・・
[曰く](https://github.com/rails/webpacker/issues/3052) rails7系 では、vueのインストールコマンドがなくなっているっぽい。というか、[引退宣言](https://github.com/rails