- 1. 社内で話したメディアダウンロード機能の実装について
- 2. RubyでUnicode文字列をもとに戻す方法
- 3. Rails module
- 4. Turbo 6: Turboアプリケーションの構築
- 5. JWTを実装して理解する
- 6. Rails Devise 管理者機能 ユーザー作成機能 所属機能 複数モデル
- 7. translation missing: ja. ~~ ?? 見たいエラーはそれじゃねえ!!
- 8. プログラミング知識ほぼ0で学んだRailsの感想(メリット・デメリット)
- 9. [Rails]指定した日の投稿数を検索する方法(非同期化込)
- 10. Turbo 5: iOSとAndroidでネイティブへ
- 11. [Rails]特定期間の投稿数の一覧表示とグラフ化
- 12. Rails初学者必見!作って学ぶRailsのリクエスト/レスポンス
- 13. 脆弱性から学ぶRubyの仕組み(CVE-2022-28739編)
- 14. [ActiveRecord]throughアソシエーションのjoinsとthroughを使わないアソシエーションのjoinsを同時にチェーンした場合、同じものと判定してくれないので注意
- 15. Rubyで配列文字列をパースしたかった話
- 16. N+1問題を理解する
- 17. Ruby3.2で追加されるDataクラスのお話
- 18. Base64を実装して理解する
- 19. コメントアウト雑まとめ(HTML,CSS,JavaSprict,Ruby,Rails)
- 20. こんなMR(PR)出しちゃダメなんだZ!!
社内で話したメディアダウンロード機能の実装について
## 背景
最近、社内でS3に保存したメディアをHTML上で手元にダウンロードする機能を実装してほしいとの要望があった。
実際に作成していく中で、私の知識不足もあり、いろいろ嵌っていったので、共有と備忘録も込めて、この記事を記述する。## なんだ、簡単じゃん
調べてみると下記のようなコードで実装できるらしい!(やったね!)
“`html
ダウンロード
“`うっきうきで実装してみると…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1770714/02d8e9ab-68b2-041d-a702-0f94825b0894.png)
違う、そうじゃない…
調べてみると、下記のような文言がありました。
>この属性は同一オリジンのURLに限り動作する今回、ダウンロードしたい画像はS3に置いてあるため、当然のことながら同一ドメインではない。よ
RubyでUnicode文字列をもとに戻す方法
## 概要
RubyでUnicodeを普通の文字列に戻す## 経緯
スクレイピングの方を実施していて、よし取得できた!と思ったらunicode形式のもので簡単に戻せるかなと思ったのですが少し苦戦したので次回以降同じことがあってもすぐ解決できるように記事にした。## だめだったこと
通常のエンコード系メソッドはだめだった
“`rb
“文字列”.encode(Encoding::UTF_8)
“`
とか## 成功したコマンド
“`rb
“文字列”.gsub(/\\u([\da-fA-F]{4})/) { [$1].pack(‘H*’).unpack(‘n*’).pack(‘U*’) }
“`例
“`
\u3054\u3063\u3064\u3048\u3048\u672c\u8217 CIAL\u6a2a\u6d5c\u5e97
↓
ごっつええ本舗 CIAL横浜店
“`どなたかの役に立てば幸いです
Rails module
## はじめに
これまで個人開発をしていて、Railsでmoduleを使うことはほとんど使うことはありませんでした。
実際にインターンをしてみると、moduleってかなり使われているなという印象です(特に名前空間としての役割)。
moduleがclassとどう違うのかや、どんな使われ方をするのかなどをまとめたいと思います。## moduleとclassの違いについて
moduleとclassの違いは以下の記事がとてもわかりやすいです。https://qiita.com/fukumone/items/2dd4d2d1ce6ed05928de
– moduleはインスタンスを生成できないが、classはできる
– moduleは他のmoduleやclassを継承することはできないが、classは継承することができる## 主な使い方
– 名前空間として使う
– メソッドを格納する場所として使う#### 名前空間としての使い方
特にこの使い方が多いのかなと思います。
moduleを使ってネストさせることによって名前空間を作ることができます。
小さなプロジェクトであれば名前の衝
Turbo 6: Turboアプリケーションの構築
:::note
この記事は[Google翻訳](https://translate.google.co.jp/)の結果を編集したものです。
:::https://turbo.hotwired.dev/handbook/building
Turboはリンクをたどったりフォームを送信したりするときにページ全体がリロードされるのを防ぐため高速です。アプリケーションはブラウザ内で永続的で長時間実行されるプロセスになります。これによりJavaScriptの構造を再考する必要があります。
特にナビゲートするたびに環境をリセットするために、ページ全体の読み込みに依存することはできなくなりました。JavaScriptの`window`と`document`オブジェクトはページが変更されても状態を保持し、メモリに残した他のオブジェクトはメモリに残ります。
このことを認識し少し注意を払うことで、Turboと密接に結合することなく、この制約を適切に処理するようにアプリケーションを設計できます。
# スクリプト要素の操作
ブラウザーは最初のページ読み込み時に存在するすべての`