- 1. 【Rails7】ImportmapでGoogleMapApiのloaderを使ってみる
- 2. OpenAPI(Swagger)導入
- 3. 【Rails】permit!メソッドで詰まった話
- 4. 【Ruby】切り上げ、切り捨てメソッドまとめ
- 5. LocalでDockerを用いてサーバー間の通信をするときは気をつけよう
- 6. 【Rails】preloadとeager_loadの個人的な使い分け
- 7. 現場で使えるRuby on Rails5速習実践ガイドを読んで
- 8. Rails7+Hotwireによるstimulus.jsのフォルダの配下のコントローラの書き方
- 9. Ruby on Railsでサービスクラスを採用すべきか?
- 10. タスク管理アプリ ラベルの検索機能の実装
- 11. RSpecのパラレル実行:効率的なテストのための道
- 12. 【Rails】Active Model Serializersとjson-api-serializerの比較
- 13. 【Rails】rename_tableでテーブル名を変更したらインデックスのエラーが出る
- 14. [Rails] routes.rbのnamespace, module, scopeの違い
- 15. 【Rails】バリデーションのuniqueness: trueについて
- 16. 【Rails】外部APIを自社システムに連携するまでの流れを解説
- 17. railsでブロック機能実装してみた
- 18. Rails7×Svelte でWebアプリ開発 part2
- 19. [rails] find_by_sqlで結合先テーブルのカラムを取得する
- 20. 計画的なDBスキーマ変更のためのRails Active Recordの実践的知識
【Rails7】ImportmapでGoogleMapApiのloaderを使ってみる
## この投稿は、
DMM WEBCAMP Advent Calendar 2023
シリーズ2 投稿8日目のエントリー(大遅刻穴埋め勢)です。7日目も私ですが、本記事の元ネタとなります。
https://qiita.com/tomoaki-kimura/items/494f1eb2266f6879dded
## はじめに
DMM WEBCAMP でメンターをやらせていただいております。 @tomoaki-kimura です。
Rails7はフロント周りがとても楽しくなりました。 `Stimulus`もその一つです。丁度よい機能と学習コストです。JQueryも状況によっては全然アリなのですが、どうやら世の中脱JQueryの流れにはなっているようですし、今後を踏まえてキャッチアップしておくのも手ではないでしょうか。
今回は、既出の記事
https://qiita.com/tomoaki-kimura/items/494f1eb2266f6879dded
こちらの、Rails7版をやっていきます。
## 環境
– Ruby 3.2.2
– Rails 7.1.2
–
OpenAPI(Swagger)導入
この記事は [BitStar Advent Calendar 2023](https://qiita.com/advent-calendar/2023/bitstar) の18日目になります。
今回は昨年から開発している [BitStar Match](https://bitstar.tokyo/match/) で導入したOpenAPIについて、RailsでのAPI開発に使える便利なライブラリやツール、またそれに伴う開発手法の選定も含めて紹介していきます。
## OpenAPIとは
OpenAPIは「OpenAPI Specification」の略で、REST APIのインタフェースを定義するためのフォーマットのことです。
以前はSwagger Specificationとして知られていましたが、SwaggerがOpenAPI Initiativeへ寄贈されたことで名称がOpenAPIに変更になったようです。## Swaggerツールセット
名称がOpenAPIに変わったことでSwaggerという言葉はもう古くなったのかというとそうではなく、現在の「Swagger」はOpenA
【Rails】permit!メソッドで詰まった話
# はじめに
あるシステムの開発中にBrakemanで「Specify exact keys allowed for mass assignment instead of using permit! which allows any keys」という警告が表示され詰まった時のお話です。# 問題
Brakemanで警告が表示されたコードは下記です。
~~~
params.permit![:hoges].to_h
~~~
原因を調査したところ、permit!メソッドを使用するとすべてのキーが許可されてしまうことや後から追加したキーも許可されてしまうため、Brakemanは警告を表示してそうでした。# 解決策
permit!メソッドではなくpermitメソッドで許可するキーを指定するように変更しました。
下記は変更後のコードです。
~~~
params[:hoges].permit(key).to_h
~~~# おわりに
permit!メソッドはセキュリティリスクを高めるため、可能な限りpermitメソッドを使用した方がよさそうです。誤り等ありましたらご指摘いただけると助かります
【Ruby】切り上げ、切り捨てメソッドまとめ
## はじめに
Ruby silver認定試験の勉強をしていた際に、小数点系のメソッドで気づきがあったのでまとめてみました。## round
使う機会が割と多いのではないでしょうか。
挙動は以下の通り。
・自身から最も近い整数のうち最大のものを返す
・最も近い整数が2つある場合は0から遠い方を返す(いわゆる四捨五入ですね)
“`ruby
> 1.9.round
=> 2
> 1.4.round
=> 1
> 1.5.round
=> 2
> -1.4.round
=> -1
> -1.5.round
=> -2
“`
・引数に数値を渡すことで、引数の小数点の位を四捨五入します
“`ruby
> 1.15.round
=> 1
> 1.15.round(1)
=> 1.2
“`
・“`half:“`オプションで最も近い整数が2つある場合の丸め方を指定できます
“`ruby
> 2.5.round(half: :up)
=> 3
> 2.5.round(half: :even)
=> 2
> 2.5.round(half: :down)
=> 2
“`
“`:up“
LocalでDockerを用いてサーバー間の通信をするときは気をつけよう
## 状況
フロントエンドはNext.js、バックエンドはRailsを用いて開発をしています。
Next.jsのサーバーコンポーネントでバックエンド側にリクエストをする際に、下記のようなエラーが発生しましたので、解決方法について説明したいと思います。“`
frontend_1 | ⨯ unhandledRejection: TypeError: fetch failed
frontend_1 | at Object.fetch (node:internal/deps/undici/undici:11372:11)
frontend_1 | at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
frontend_1 | cause: Error: connect ECONNREFUSED 127.0.0.1:8080
frontend_1 | at TCPConnectWrap.afterConnect [as oncomplete]
【Rails】preloadとeager_loadの個人的な使い分け
# 概要
RailsでN+1問題を解決する際によく使われる`preload`と`eager_load`の違いと個人的な使い分け方針をまとめました。# 背景
先日実務で扱っているアプリケーションにて、メモリ使用率が急上昇しプロセスがダウンしてしまうトラブルがありました。原因は、ActiveRecord関連の処理で**JOINやLEFT_JOINを複数回重ねたSQLが発行**されており、その結果膨大な件数のレコードがRailsに返却され、それらのオブジェクトがメモリ上に展開されてしまったというものでした。上記の経験から、普段何気なく使っている`preload`や`eager_load`も場合によってはメモリを圧迫しかねないのではと思い、改めてこれらの処理が何をしているのかを理解し利用方針を整理することにしました。
# 詳細
### 仕組みの違い
preload, eager_loadいずれも関連先のレコードをキャッシュしてくれるものですが、その仕組みには以下のような違いがあります。|| preload | eager_load |
|—-| —- | —- |
|
現場で使えるRuby on Rails5速習実践ガイドを読んで
# はじめに
今回は[Ruby on Rails5速習実践ガイド](https://www.amazon.co.jp/gp/product/B07JHQ9B5T/ref=ppx_yo_dt_b_d_asin_title_351_o00?ie=UTF8&psc=1)を読んだので、読了したので、良かったところや悪かったところなどをまとめていこうと思います。
購入するか悩んでいる方やこちらの本を気になっている方の参考になれば良いと思います。# 良かったところ
– railsの基礎を学べるところ。
– 開発の全体像を掴むことができる。
– アプリケーションの作成からCRUD機能を一通り学べること
– Bootstrapを使って見た目も整えたアプリケーションを作ることができる
– Rspecで自動テストについて学ぶことができる
– チーム開発について学ぶことができる
– バージョンアップへの対応を学ぶことができる
– コードのリファクタリングや共通化などのベストプラクティスなどを学ぶことができる#
Rails7+Hotwireによるstimulus.jsのフォルダの配下のコントローラの書き方
# はじめに
stimulus.jsのコントローラをフォルダで分けた際のHTML上での記述方法を解説します。
# 問題
JavaScript/controllers/test_controllerは
そのまま
“`html関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた