Rails関連のことを調べてみた

Rails関連のことを調べてみた

grepコマンドの省略形

# grepコマンド
routesを確認するのに部分検索をしていましたが、
省略形があることを知ったのでメモしておきます。

今まで使用していたコマンドがこちら↓
“`
$ rails routes | grep user
“`

# 省略形
新しく知ったのがこのコマンド!
“`
$ rails routes -g user
“`

# さいごに
めちゃくちゃ打ちやすい!!!
今度からこのコマンドを多用しようと思います!

元記事を表示

【個人開発】プログラミング初心者がテスト成績を管理するアプリを作成しました。

# はじめに
前職は、公立中学校で教師をしていました。
授業の中で、毎回小テストを行っていたのですが、結果が視覚的に分かりやすくなるよう、折れ線グラフにして記録させていました。その結果、生徒の小テストに対するやる気が向上していきました。
しかし、生徒一人ひとりのデータを個別に折れ線グラフにする作業が非常に手間であるという課題がありました。
また、学期末の成績を出す際、生徒が小テストや、実力テスト、定期考査など異なる種類のテストを受ける中で、成績の伸びを正確に把握することが難しいと感じていました。

# サービス概要
### My Progress Report
URL: https://myprogressreports.com/
![Qiita](https://i.gyazo.com/3b9d9476285cc3be6170a7004b44fcf9.jpg)
テスト成績を管理するアプリです。
* ユーザーはテストの名前、取得点数、そして最大得点が何点かを入力し、自動的に達成率が計算されます
* これまでのテスト履歴を一覧で確認し、達成率の推移を折れ線グラフで視覚的に把握することが可

元記事を表示

タグの配色をrubyで対応

# はじめに
[以前](https://qiita.com/youfuku/items/c53bb3a6c4d1c1689c8a)タグを扱うことがあり、そこでの対処法を備忘録として記載しておきます。
内容としては、本来CSSでやる部分をrubyでやってみようという興味範囲の記事となります

# 問題点
背景色のみを設定していたため、色合いによっては見えない等が発生していました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632357/96de0798-682d-1e93-564a-de7ad61f2807.png)

# 改修内容
今回からview_componentを利用するようにしました

送られてくる配色レコードは、「#ffffff」のような形だったので、下の記事を参考に分解するメソッドを構築
https://qiita.com/t_fujise/items/be13f5288d4423e56a64
“`ruby
def rgb_color
@color.

元記事を表示

【個人開発】英語独学歴10年目の私が本気の英語学習アプリを開発しました🌟

## はじめに
こんにちは!初学者からWeb開発エンジニアを目指す[Erika](https://x.com/Erika_jpn_328)と申します🐣
この度、個人開発で「**[SpeakUp](https://speakup-app.com/)**」というアプリをリリースいたしました!🎉本気で英語を学習する人をターゲットにした主にスピーキング力の向上を目的としたアプリになっております✨

### サービスURL
https://speakup-app.com/

### GitHub URL
https://github.com/erika328/SpeakUp

## 開発背景
### ・私自身がこんなアプリあったらいいなと思っていた
英語学習をしていると必ずどこかで伸び悩みます。そんな人がさらに次のレベルへ成長できるアプリを探していました。あったらいいなと思う機能はあるのに、なかなか理想のアプリを見つけることはできませんでした。
プログラミングスクールへ入学し、ポートフォリオとして何を作りたいのか考えていた時に、「そうだ、私が欲しいアプリを作ればいいんだ!」と思い立ちました。

元記事を表示

Railsチュートリアル

# はじめに
Rails触ることになりそうなので、Railsチュートリアルをやりつつ基本を学ぶ。

# 開発環境
– docker
– VsCode

# 内容

## 環境構築

– dockerで環境構築する
– 前提
– dockerインストール済み
– VsCodeインストール済み
– 拡張機能インストール済み

– 下記手順ですすめる
– [Visual Studio Code と Docker を使って開発する](https://railstutorial.jp/help#devcontainer)

– 「Use this template」をクリックし、リポジトリを作成する
![スクリーンショット 2024-05-12 18.50.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/923146/ade6e5da-7b58-39b5-a494-6e105ea6c958.png)

– ローカル環境にもってくる

“`
git clone https://gi

元記事を表示

自作WEBアプリのプロモーション(3)

## 自作WEBアプリのプロモーション(3)
どうもライララです今回別に変化はないけど書いてます相変わらずユーザー数は4人で変化はないですね、、、
どうしたら増えるのか日々考えるしやっぱり焦りますね、何かしないとってなるし別にこれ皆が求めているものでは無くね?とか、でも新しいアプリを作るアイデアも出てこないですしね。
いわゆる燃え尽き症候群的な感じなんですかねー
もう大学三年で就職とかも考えると色々不安になってきますね。
ここまでだらだら語ってますがひとまずやるってのが僕のポリシーなので今日も書いていきます。

## 変更点
ユーザー数は増えてませんが少し見た目を変えまして今日はそこの告知をさせてもらえればなと思います。

![Screenshot_20240611-052230.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3809905/6c285e77-7ec2-ea5e-a66f-97da041e6004.png)

このようにスケージュールのところを暗転しましたね。
なんか全部同じような感じだ

元記事を表示

ゼロから始めるstimulus入門1

## はじめに
最近、railsでstimulusを使い始めました。まだまだ、使い方がよくわかっていないところがあるので、ドキュメントを読みながら1から学びたいと思います。
今回はドキュメントのhandbook通りに進んでいきます。railsで使いそうでない部分は省いています。
[ドキュメントはこちら](https://stimulus.hotwired.dev/handbook/building-something-real)

## stimulusとは
stimulusはjavascriptのフレームワークです。
Stimulusは、すでに存在する静的なHTMLやサーバーで生成されたHTMLをより便利にするために設計されているようです。
Stimulusはページを継続的に監視してHTMLのdata-controller属性が現れたら、それに対応するjsファイル(命名規則あり)と対応付けします。
難しく感じますが、今までcssでも使われるclassやidから属性を取得していたものを、data-controller属性というもので、明確にjsとhtmlのつながりを分けたというものだと

元記事を表示

Rails7.1以降でも ActiveStorage の has_many_attached を 編集時既存ファイルを残す(上書きしない)挙動にする方法まとめ

## 超要約

ActiveStorage の `has_many_attached` に関する下記設定(Rails7.1 で廃止)の代替は
“`ruby:config/application.rb
config.active_storage.replace_on_assign_to_many = false
“`

下記のモデル拡張用モジュールを作成すれば(モジュール名は何でもよい)
“`ruby:app/lib/attach_many_extension.rb
module AttachManyExtension
module ClassMethods
def has_many_attached(arg)
super

delete_ids_attr = “delete_#{arg.to_s.singularize}_ids”
public_send(:attr_accessor, delete_ids_attr)

define_method :del_attr_nm do delete_ids_attr end

元記事を表示

GitHubアクションを使用してRSpecテストの自動化

# はじめに
RSpecテストを作成したので、デプロイするたびに自動でテストするようにしたい!
と頑張って書いてみたものの、エラーが発生…
解決したのでまとめておきます

# エラーの原因の解決
元々の記述内容↓

“`rails.yml
name: Rails CI/CD

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: [‘3.1.2’]
steps:
– uses: actions/checkout@v4
– name: Set up Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:

元記事を表示

本番環境でseedsファイルを反映させたい

# はじめに
2回目のデプロイ、新しくseedファイルに記述した情報を本番環境にも反映させたい!
しかしエラーが起きてしまったので解決までの流れを記載します✍️

# エラー状況
デプロイを一通り行い、開発環境でログインできていた管理者側にログインするため
ターミナルからEC2にログイン、rails db:seed実行します。

EC2ログイン↓
“`
ec2-user:~/environment/アプリ名 (main) $ ssh -i ~/.ssh/practice-aws.pem ec2-user@IPアドレス
“`

アプリケーションへ移動↓
“`
[ec2-user@ip-172-31-18-108 ~]$ cd アプリ名
“`

rails db:seed実行(本番環境の時はRAILS_ENV=productionが必要)↓
“`
[ec2-user@ip-172-31-18-108 アプリ名]$ RAILS_ENV=production rails db:seed
“`

エラー文がこちら↓
“`
rails aborted!
ActiveRecord::R

元記事を表示

タグ選択機能のリファクタリング

# はじめに
rails案件でタグが力業で実装されていたので、そこを改修した際の備忘録となります。
親子孫関係を一括で登録する似たような記事はたくさんあるので、説明は割愛気味で記載しています。

# 実装状況
ruby:3.3.0
ruby on rials:7.1.3
css , js: jsbundling-rails + cssbundling-rails 構成
view:haml

# モデルの構成
以下のような構成
master_tag -> test_tag <- test # モデルの変更 ```ruby class MasterTag < ApplicationRecord has_many :test_tag end ``` ```ruby class TestTag < ApplicationRecord belongs_to :master_tag belongs_to :test end ``` ```ruby class Test < ApplicationRecord has_many :test_tag, dependent: :des

元記事を表示

DeviseTokenAuth×AWS SESでパスワードリセット【Rails】

現在オンラインスクールにてプログラムの勉強をしているとぴ([@topi_log](https://x.com/topi_log))と申します。
DeviseTokenAuthを使ったアプリ開発でパスワードリセットを行ったので、そのまとめとして執筆いたしました。
初学者ゆえ、間違いなどありましたらそっと教えていただけますと幸いです。

# 対象者

– RailsAPIモードで、DeviseTokenAuthによる認証を行っている人
– フロントとバックは別ドメインで管理している人
– AWS SESを使ってパスワードリセットのメールを送りたい人
– 独自メインをCloudflareで作っている人
(Cloudflareでなくても同じように設定すればいけると思います)

# 開発環境

バックエンド
– Ruby on Rails7.1.3 APIモード
– Ruby3.2.3
– DeviseTokenAuth

フロントエンド
– Next.js14
※今回は設定とバックエンドを中心ですので実装内容は細かく書いていません。

インフラ
– Docker
– Vercel(フロントエン

元記事を表示

Rails7系にviteを使ってVue3を入れてみた

## はじめに

Rails7系にはWebpackerが非推奨なのでいままでのようにインストールことができません。そのため備忘録としてRails7にviteを使ってVue3を入れる方法をまとめてみました。

https://github.com/eyamagishi/rails_vue_app

## 実行環境

– Ubuntu:22.04.4 LTS
– Ruby:3.1.2p20
– Rails:7.1.3.4
– Vue:3.4.27

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

Railsプロジェクトを作成するために以下のコマンドを実行します。

“`bash
rails new rails_vue_app
cd rails_vue_app
“`

サーバーを起動するため以下コマンドを実行します。

“`bash
rails s
“`

以下の画面が表示されれば次へ進みます。

![スクリーンショット 2024-06-09 121152.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29

元記事を表示

Rails 7.2をちょこっと試す(query and cached ログ編)

# はじめに

rails 7.2beta2 がリリースされたので、ちょっと試してみました。

rails 7.2 では、Rails のログに、実行されたSQLの数が表示されるようになりました。

## ログの確認

Rails 7.1 では、以下のようなログが出力されます。
Rails 7.2 で変るのは、最後の `Completed` の行の `ActiveRecord: 2.2ms` の部分です。

“`sh
Started GET “/books” for 172.25.0.1 at 2024-06-09 08:27:47 +0900
Cannot render console from 172.25.0.1! Allowed networks: 127.0.0.0/127.255.255.255, ::1
ActiveRecord::SchemaMigration Load (0.1ms) SELECT “schema_migrations”.”version” FROM “schema_migrations” ORDER BY “schema_migrations”

元記事を表示

自作WEBアプリのプロモーション(2)

## 自作WEBアプリのプロモーション(2)
皆さんお久しぶりです。
特に大きな変化はないのですが、とある記事を見つけそこで毎日の告知は大事という事で居ても立っても居られなくなり書いているという次第です。

## 何か動きはあったのか
あの記事から2.3日たったのですがユーザー数は増えたのか気になりますよね、

*なんと1人から4人に増えました!!!*

といってもそのうち3人は僕の友人なんですけどね、、、
それでも知らない方が1人来られたというのは嬉しいですね(投稿の内容が「テスト」だったのですがただの視察だった説は否めませんが今は一旦喜びましょう)
以上!!!

## 今回のメイン
おい、ライララこれで今回終わりかよそういう声が聞こえてきそうなのですがそれに対して僕はこういい返しますよ「なわけないじゃないですか」

という事で何を今から言うかというと、僕のサービスOurTimeの説明ですね。

前回の記事の閲覧回数が100回を超えたのになんとびっくり僕どのようなサービスか深く言ってなかったんですよね、
確かにそんなんじゃ皆さん来てくれないなという事で今回僕のサービスがどの様なものな

元記事を表示

Rails のアップデートで、 new_framework_defaults_x_x.rb をコメントインし忘れてないですか?

tldr; Railsのアップデートするとき、`config.load_defaults x.x` に対応した `new_framework_defaults_y_y.rb` に書かれた内容をコメントインして有効にしないと意味ないので注意。

# たとえば Rails 7.0 -> 7.1 にアップデートするとき

“`ruby:config/application.rb
config.load_defaults 7.0
“`

して、7.1の新設定は `new_framework_defaults_7_1.rb` でひとつずつコメントインしていく、というのが[オフィシャルの手順](https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#configure-framework-defaults)だが、このコメントインしていく作業を忘れると、そのrailsは 7.0 のデフォルト設定で動いている。 7.1 の主にBREAKINGな設定は有効になっていない

これを忘れたまま 7.2 にアップデートしようとして `conf

元記事を表示

Railsで.gitignoreにvender/bundleを追記せず、bundle installしたらとんでもないことになった。😱(個人開発で失敗しておきましょう)

# 概要
Railsで個人開発をしていた時です。
***Gemfileをgemを追加した後***、“`bundle install“`したらとんでもないことになりました。😱

# 実際どうなった
下の画像見てくれたらわかります。

![スクリーンショット 2024-06-08 23.42.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/1a0ba823-18cd-5129-f6c2-a4059198d85c.png)

***ファイルの変更数がとんでもないことになりました***。😅
gemを3つくらい追加して、***bundle install***したらこんな風になりました。
これ現場でやったらホラーですよね💦

# 対処法
***vendor/bundleディレクトリ以下のファイルは全てGitによって無視される必要***があります。
“`.gitignore
# Ignore vendor/bundle directory
vendor/bundle/
“`
そして“`

元記事を表示

【Rails】バリデーションエラーが表示されない場合の解決方法

## 概要
Railsで後述するバージョンで「バリデーションエラーメッセージ」が表示されなかったので、解決法とその理由を解説します。

### バージョン
Ruby:3.1.4p223
Rails :7.0.8.1

### コード
“`ruby:Ruby
status: :unprocessable_entity
“`
**記述する箇所:**
![screenshot_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711935/395a0180-5353-da37-ff54-af7e963969c9.png)

### status: :unprocessable_entity の役割

ステータスコード422へレンダリングさせるためで`バリデーションエラーの際に返す`コードです。
※ステータスコードとはHTTPレスポンス時の処理結果を3桁の番号で表現すること。

**コードを書かなかった場合:**
Railsはデフォルトでリクエスト成功を返すので、バリデ

元記事を表示

【Rails】Sorcery使用によるGoogle認証の注意点

## はじめに
この記事では、Gem「“`sorcery“`」を使用したGoogle認証に関する注意点をまとめました。具体的な実装方法の解説は行わず、確認すべき重要なポイントについて触れています。

Google認証を導入するなら「“`devise“`」の方が一般的でおすすめですが、既に「“`sorcery“`」を用いてログイン機能を実装している方のために書いています。私自身、sorceryでGoogle認証を実装する際に情報が少なく苦戦したため、同様に苦戦している方々の助けになれば幸いです。

## 環境
– ruby 3.2.3
– rails 7.1.3
– Docker

前提条件としてsoceryによるログイン機能に加えて、Google認証導入までも一通りできている(エラー・不具合込み)とします。

## 確認すべきこと・詰まるポイント
sorceryを使用してGoogle認証を導入する際の確認事項と詰まりやすいポイントについて解説します。

### 承認済みリダイレクトURI
まず、Google Cloudコンソールに登録した承認済みリダイレクトURIと、Ra

元記事を表示

RailsアプリActiveRecordのスロークエリを改善した話

# 背景
私は普段Railsアプリケーションを運用保守しています。
ある日、アプケーションで使用しているAWS RDSのCPU使用率が100%張り付きになってしまう問題が発生しました。
今回はその問題を解決するまでの道筋を記載していけたらと思います。

# 解決までの流れ
解決までの流れはざっくり書くと以下です。
1. AWS RDSのCPU使用率メトリクスを確認し、問題発生時刻を把握
1. AWS CloudWatchで該当時刻のスロークエリログを確認し、問題となるクエリを特定
1. クエリをEXPLAIN
1. 該当のクエリが作られるActiveRecordを特定、EXPLAINした結果を元にコードやDB設定を修正
1. テスト、リリース

# 1. AWS RDSのCPU使用率メトリクスを確認し、問題発生時刻を把握

RDS > データベース > 該当のデータベース > モニタリング > CPU使用率

で確認できます。

# 2. AWS CloudWatchで該当時刻のアプリケーションログやスロークエリログを確認し、問題となるクエリを特定

※スロークエリログをCloudWa

元記事を表示

OTHERカテゴリの最新記事