Rails関連のことを調べてみた2023年01月26日

Rails関連のことを調べてみた2023年01月26日
目次

【初学者向け】DockerでRails7の環境構築(2023年版)

[Dockerの公式ドキュメント](https://docs.docker.jp/compose/rails.html)でRails7系の環境構築をしたら途中で詰まったので、スムーズに構築していく方法を記します✏️

## 前提条件
開発環境
– M1Mac: Ventura13.0
– [Docker Desktop](https://docs.docker.com/desktop/install/mac-install/)インストール済み

## この記事でわかること

✅[Dockerの公式ドキュメント](https://docs.docker.jp/compose/rails.html)に沿ったRails7系の環境構築方法✅
(公式ドキュメント通りに行うとエラーが発生するので、本記事ではその解決方法も記します!)
※ 本記事では、DockerでRails7を最速で環境構築する方法を記します。DockerやRailsの詳しい説明については別記事をご参照ください?

## 環境構築手順

### 1. 任意のディレクトリを作成
Macの任意

元記事を表示

MYSQL

# mysqlの起動
“`
$ mysql -u root -p
“`

# データベースの確認
“`
mysql> SHOW DATABASES;
“`

# データベース接続
“`
mysql> use 接続したいデータベース名;
“`

# テーブル確認
“`
mysql > show tables;
“`

# テーブルのデータを確認
“`
mysql> SELECT * FROM 確認したいテーブル名;
“`

MYSQLを抜ける
“`
mysql> quit
“`

元記事を表示

うまく使えばレスポンスが爆速に Rails 7から導入されたload_asyncについて解説

今回はRails 7から導入された新機能 load_asyncについて解説します!

[私のブログ](https://ftb3nip05e.microcms.io/apis/blogs/dnjqj82-63)にも同じ内容を記載しておりますので、こちらも是非ご参照ください

## load_asyncとは
Rails 7から追加された、「非同期的にクエリ実行するためのメソッド」です。

並列にクエリが実行されるため、うまく使うと **これまで時間がかかっていた処理をかなり短縮できる「可能性」** があります。

## load_asyncの使い方
以下のような場面を想像してみましょう。

mypageを取得するメソッドの中で、「お客様のプロフィール」「お客様の購入履歴」「お客様の獲得ポイント」の3つを取得しています。

“` ruby
def mypage
@profile = Profile.find_by(user_id: params[:user_id])
@orders = Order.where(user_id: params[:user_id])
@poin

元記事を表示

単価に見合ったRubyエンジニアを雇うために面談で使える技術的な質問

### 解決したいこと
単価に合わないRubyエンジニアを雇いたくはない。

### 解決方法
面談で技術的な質問で単価に合わないエンジニアか判断できるようにする

### 技術的な質問集
railsエンジニアの面談時の技術的な質問をまとめました↓

Q: Userモデルが複数のpostを持つ時、userモデルにどのような記述をしますか?
A: has_many :posts

Q: Userモデルが複数のPostを持つ時、Postモデルにどのような記述をしますか?
A: belongs_to: user

Q: Userモデルが複数のPostを持つ時、userのレコードが削除された時にpostsも削除されるようにするためにどのような記述が必要ですか?
A: has_many :posts, dependent: destroy
has_manyの記述の後にdependent: destroyをつける

Q: railsで、データベースの構成を変更するために何をしますか?
A: マイグレーションファイルを作成する

Q: マイグレーションファイルを作成するコマンドは?
A: ra

元記事を表示

変更した差分だけ、rubocopでコードチェックする方法

gitとrubocopをプロジェクトに入れている時のみ使えます。

コード整形はしない場合
“`shell
git diff –diff-filter=ACMR –name-only | xargs bundle exec rubocop
“`

コード整形までさせる場合
“`shell
git diff –diff-filter=ACMR –name-only | xargs bundle exec rubocop -a
“`

# rubocop

https://github.com/rubocop/rubocop

元記事を表示

Rails ajax 処理の場合 ApplicationController に書いてある 共通処理 を スキップ したい

# 何がしたい?
全ページ共通で行いたい処理って、ApplicationControllerのbefore_actionに書いたりするじゃないですか?
例えば、今みんなの右上にあるQiitaの通知なんかもおそらくApplicationControllerのbefore_actionで件数やコンテンツをセットしているのではないかな。(これは妄想なので真相は知らんけどね)

ApplicationControllerのbefore_actionって何も特別な記述をしていない場合、
Controllerに入る前に確実に通ってしまうのですが、そうなるとajaxなどの処理時にも通ることになるやん?
そうなると割と重い処理をbefore_actionに書いている場合ちょっとしたajax処理でも激オモになってしまうんですわ:poop:

元記事を表示

【rails】日付でのDB検索を行いたい

例)
start_atカラムで開始時間を管理している。
指定した日付に該当するデータを確認したい。

~~~:railsコンソール
search_date = ‘2021-06-15’
ExamSchedule.where(start_at: search_date.in_time_zone.all_day)
~~~

参考記事
https://tech.pla-cole.co/rails-db-action/

元記事を表示

Ruby on Rails初心者の学習記録 Part4:CRUD(後編)

# はじめに
Ruby on Rails初心者の学習記録Part4です。
[Part1](https://qiita.com/Yasushi-Mo/items/d24fd4abab2c1333c522)では、Rubyの基本文法やRailsを利用したWebアプリケーションの開発環境構築手順及びルーティングについて学びました。
[Part2](https://qiita.com/Yasushi-Mo/items/5dfe81d39b5a153fe43c)では、MVCアーキテクチャのモデルについて学びました。
[Part3](https://qiita.com/Yasushi-Mo/items/931cfcef990647f1da18)とPart4では、 [“Getting Started with Rails”](https://guides.rubyonrails.org/getting_started.html) の [“7 CRUDit Where CRUDit Is Due”](https://guides.rubyonrails.org/getting_started.html#

元記事を表示

rails 学習備忘録その2 ~道場レッスンIIまで~

# はじめに
マジでただのメモ 読んでもらうために書いてないので悪しからず…
第一回↓
https://qiita.com/menma_at_here/items/fe207f4a4241c11d504e

# 内容
progate の rails入門を進めていく
4章~5章まで

## rails IV

### 編集
– updateとかcreateするときは、ルーティングを `get` ではなく `post` にする必要がある
– `post “posts/:id/update” => “@posts#update”` みたいな感じでupdateアクションに飛ばして、その中で `redirect_to(“~~”)` をする、みたいな流れ
– form を使うときは、以下みたいな感じで `form_tag` を使う
“`erb
<%= form_tag("/posts/#{@post.id}/update") do %>

OTHERカテゴリの最新記事