- 1. Railsのdevice_token_authでパスワード再設定で参考にした記事
- 2. React + Rails + AWS Fargate の構成を実現したい – 00 全体概要編
- 3. 【RSpec】Railsのモデルスペックでバリデーションのテストは書くべきか否か?
- 4. React + Rails + AWS Fargate の構成を実現したい – 01 バックエンド環境構築編(Docker + Rails)
- 5. N+1問題のイメージ画像
- 6. 【Railsチュートリアル】リスト10.29のテストをより詳細に書いてみる
- 7. 【Rails】devise_invitableで招待メールからパスワード登録したユーザのリダイレクト先を変更する
- 8. 【Rails】Signupの際のrootエラー解決
- 9. 【Railsチュートリアル】benchmark-ips gemで処理の実行速度を計測してみる
- 10. Railsのdevice_token_authでArgumentError in DeviseTokenAuth::ConfirmationsController#show
- 11. 【Rails】devise 管理者が他のユーザーの新規登録ができるようにする
- 12. RailsでVueRouterでブラウザバックすると白い画面になる(Vueが読み込まれない)
- 13. DockerコンテナのRailsにvuetifyをいれたがno moduleになる
- 14. Railsのdevice_auth_tokenでActionController::InvalidAuthenticityTokenがでてしまう
- 15. Letter Opnerでメールは送信できているが確認ができない
- 16. DockerのRailsコンテナがログ(logger, puts)を表示しない
- 17. Railsで複数選択可能なチェックボックスから受け取ったパラメータがnilになる
- 18. 【Ruby】putsの戻り値はnil
- 19. RailsからMySQLへのアクセスでAccess denied for user ‘root’がでてしまう
- 20. Railsでパラメータを付与してアクセスしたときにエラーになって処理が始まらない
Railsのdevice_token_authでパスワード再設定で参考にした記事
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 参考
https://footlog-blog.net/posts/20220103-the-event-of-no-redirection-by-resetting-the-password-of-devise_token_auth/
React + Rails + AWS Fargate の構成を実現したい – 00 全体概要編
## 概要
現在正社員としてバックエンド + インフラをメインにWeb系エンジニアをしている。
技術力の向上を目的に個人開発を行いたいと常日頃考えているが、現時点で開発したいアプリケーションがない状況である。
このまま考えてるだけでは時間がもったいないため、まずはモダンかつ定番なWebサービス構成を作ることにした。
これにより、いざ個人開発でサービスを作りたいと思った時にアプリケーション開発に注力できるようにする。## 自分のスキル
– 実プロジェクトではJavaScriptをメインで使用している
– TypeScriptは使っていない
– Reactはある程度読むことはできるがガリガリ書いていない– AWSの設計・構築をメインで担当している
– ECSなどのコンテナサービスは使っていない
– CDKによるインフラコード化は経験あり
– CI/CDに関して一定の知見はある## やりたいこと
以下技術も用いた構成を実現し、いざ個人開発でサービスを作りたいと考えた時にアプリケーション開発に注力可能とする
– 共通
– Docker
【RSpec】Railsのモデルスペックでバリデーションのテストは書くべきか否か?
## はじめに:単純なバリデーションならテストコードは不要(という私見)
Railsでモデルスペックを書くとき、バリデーションのテストを書く人をよく見かけます。
たとえば以下のようなイメージです。“`ruby
class User < ApplicationRecord validates :name, presence: true end ``` ```ruby RSpec.describe User, type: :model do # こういうテストは書く?書かない?? describe 'validation' do example 'nameは必須' do user = User.new(name: '') expect(user).to be_invalid user.name = 'Alice' expect(user).to be_valid end end end ``` 決して、バリデーションのテストを書くことが悪いことだとは言いませんが、個人的には単純なバリデーションで
React + Rails + AWS Fargate の構成を実現したい – 01 バックエンド環境構築編(Docker + Rails)
# 概要
https://qiita.com/memomaruRey/items/746f9cff0ceefe8b6157
# 本記事のゴール
以下を参考にDocker + Railsの環境構築を行う。https://zenn.dev/hibriiiiidge/books/49ee4063b10cec1df1a2/viewer/dc751838fa3715f814dd
以下つまづいた点をメモする。
# つまづいた点
## 1. Dockerfileの修正参考のDockerfileだとエラーが発生したので、修正
“`diff
FROM ruby:2.6.6ENV LANG C.UTF-8
ENV TZ Asia/TokyoRUN mkdir /app
WORKDIR /appADD Gemfile /app/Gemfile
– RUN apt-get update -qq && \
– apt-get install -y build-essential \
– libpq-dev \
– sudo \
– gem install bundler:2.0.
N+1問題のイメージ画像
![スクリーンショット 2022-08-21 10.35.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1667538/8af891e4-c146-6488-7379-531b670a4e49.png)
N+1問題の説明です。1:Nというのは1ユーザーに対してN個の投稿データが存在することをさします。
![スクリーンショット 2022-08-21 10.25.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1667538/61c96efb-1d08-f07d-a868-f12d3e294db7.png)
![スクリーンショット 2022-08-21 10.25.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1667538/b70935c0-1141-c2ad-b83e-2a99edf9eb48.png)
![スクリ
【Railsチュートリアル】リスト10.29のテストをより詳細に書いてみる
# 目的
Railsチュートリアル10.2.3章では「フレンドリーフォワーディング」について学んでいきます。
https://railstutorial.jp/chapters/updating_and_deleting_users?version=6.0#sec-friendly_forwarding
ただこの章、初学者にとって理解しにくい箇所だと思ったので自分のためにもまとめておきます。
最終的にはリスト10.29のテストをより詳細にし、ふりがなを振っていきます。# 前提
リスト10.33まで進め、リスト10.29のテストコードがGREENになる状態にしておいてください。# 解説
## そもそもこのテストで何をしようとしているのか?リスト10.29にふりがなを振っていきます。
“`ruby:test/integration/users_edit_test.rb
require ‘test_helper’class UsersEditTest < ActionDispatch::IntegrationTest # @userにfixturesで定義したmic
【Rails】devise_invitableで招待メールからパスワード登録したユーザのリダイレクト先を変更する
## deviseとdevise_invitable
deviseとはRailsで作成したアプリケーションへ簡単に認証機能を実装することができるgem(ライブラリ)の一つで、devise_invitableはdeviseに招待機能を追加するgemになります。### やりたいこと
devise_invitableで招待メールを送信
↓
パスワード設定用の招待メールが送られてくる
↓
パスワード設定
↓
希望の画面にリダイレクトする (今回はこれをやりたい### 問題点
パスワードを設定すると自動でログインしてくれるのですが、
設定後にroot_pathに遷移してしてしまう。### ハマったところ
deviseには元来`after_sign_up_path_for`(登録後のリダイレクト先を変更できるメソッド)や
`after_sign_in_path_for`(ログイン後のリダイレクト先を変更できるメソッド)が存在しており、
招待メールからパスワードを設定したのちに自動でログイン状態になっているので同様のやり方でいけると思っていました。* `after_sign_up_p
【Rails】Signupの際のrootエラー解決
# Signupの際のrootエラー解決
form_withを使ってユーザー登録のフォームを作成し、正しいname,email,password,password_confirmation
を入力したのにも関わらず、下記のエラーが出てしまった時の原因
## ActionController::RoutingError (No route matches [POST] “/signup”):
①rootの設定が出来ていない
⇒データの作成、表示、更新、削除をリソース(Resources)として扱う
“`ruby:config/routes.rb
resources :users
“`
②form_withの引数にurlが入っている
⇒①の設定をしている場合はurl: signup_pathを削除する
“`ruby:app/controllers/users_controller.rb
<%= form_with(model: @user, url: signup_path, local: true) do |f| %>
<%= render 'shared/error
【Railsチュートリアル】benchmark-ips gemで処理の実行速度を計測してみる
Railsチュートリアルの第4章に以下のような問いがあります。
>Rubyのbenchmark-ips gemを使い、ハッシュのキーを「数字」「 文字列」「シンボル」にした際のそれぞれの実行時間を測定してみましょう。
>Railsチュートリアル第4章より4章までの復習兼ねて解いていきます。
まずbenchmark-ips gemをインストールします。
“`ruby:Gemfileへ追記
group :development, :test do
(省略)
gem ‘benchmark-ips’
end
“`
本番環境ではいらないと思うので、開発・テストのみのインストールとしました。
“`ruby:コマンド実行
$ bundle install
“`
上記コマンドだと、インストール済みのものはインストールされず追記したbenchmark-ips gemのみインストールされます。
“`ruby:実行結果
…
Using ansi 1.5.0 #インストール済みのgemはUsingとなっている
Fetching benchmark-i
Railsのdevice_token_authでArgumentError in DeviseTokenAuth::ConfirmationsController#show
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
device_token_authのShowアクションにアクセスしたところ以下のエラーが発生した
“`
ArgumentError in DeviseTokenAuth::ConfirmationsController#show
“`そのようなルートはないというエラーだった
# 解決方法
`/view/devise/mailer/confirmation_instructinos.html.erb`を以下に変更すると治った
“`erb:/view/devise/mailer/confirmation_instructinos.html.erb
<%= t(:welcome).capitalize + ' ' + @email %>!
<%= t '.instruction' %>
<%=# 下記の様に書かれているはずなので %>
<%
【Rails】devise 管理者が他のユーザーの新規登録ができるようにする
# 【Rails】devise 管理者が他のユーザーの新規登録ができるようにする
### devise
deviseを使用してユーザー登録機能を実装した際に、管理者としてログインをし他のユーザーの新規登録ができるようにしたいとします。
しかし、そのままの状態で新規登録をしようとするとroot_pathにリダイレクトされてしまい新規作成画面に遷移できません。## rails g devise:controllers users
本来deviseのコントローラーはGem内に記述されているため編集することはできません。
しかしdeviseのユーザー登録機能はregistrations_controller.rbで定義されているため、このファイルをどうにかしなくてはいけません。
そこで、このcontrollerをオーバーライドしてカスタマイズをしていきます。まずはオーバーライドするためのファイルを作成します。
“`
$ rails g controller users/registrations
“`
これで編集するファイルapp/controllers/users/regi
RailsでVueRouterでブラウザバックすると白い画面になる(Vueが読み込まれない)
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
Vueを読み込んだページから別のページに移動して戻るボタンを押すと白い画面になってしまいVueが読み込まれなくなってしまった
# 解決方法
`application.js`に`turbolink`が設定されていることを思い出して切ることで解決した
“`js:javascript/packs/application.js
# 以下をコメントにする
// Turbolinks.start()
“`# 参考
https://www.fuwamaki.com/article/4
DockerコンテナのRailsにvuetifyをいれたがno moduleになる
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
コンテナで作成したRails環境にyanr installで`vuetify`をいれたがなぜか`no module`エラーが発生した
# 解決方法
Webpakcerのキャッシュが効いているのかインストールがうまくされていなかった
`docker-compose build –no-cache`をして`yarn install`したら読み込まれるようになった
Railsのdevice_auth_tokenでActionController::InvalidAuthenticityTokenがでてしまう
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
device_auth_tokenを利用したところ`ActionController::InvalidAuthenticityToken`というエラーがでた
# 解決方法
`Application_controller.rb`に`protect_from_forgery`を追加したら200が返ってきた
# 参考
https://techtechmedia.com/invalid-authenticity-token-api/
Letter Opnerでメールは送信できているが確認ができない
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
LetterOpnerでメールの送信が行われているのは確認ができているが、受信が行われていなかった
# 解決方法
ApplicationMailerを継承していないことが原因だった
“`
class TestMailer < ActionMailer::Base ↓ class TestMailer < ApplicationMailer ``` としたところメールが送られるようになった
DockerのRailsコンテナがログ(logger, puts)を表示しない
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
DockerコンテナでRails環境を構築したところ`logger.debug`や`puts`を行っても標準出力が行われなかった
# 解決方法
puma.rbで標準出力が`log/puma.stdout.log`にリダイレクトしていた
“`rb:config/puma.rb
# stdout_redirect “#{app_root}/log/puma.stdout.log”, “#{app_root}/log/puma.stderr.log”, true
unless ENV.fetch(“RAILS_ENV”, “development”) == “development”
stdout_redirect “#{app_root}/log/puma.stdout.log”, “#{app_root}/log/puma.stderr.log”, true
end
“`
Railsで複数選択可能なチェックボックスから受け取ったパラメータがnilになる
# はじめに
この記事は2021年1月にまとめていた「細かいつまずいたことをメモしておく(1月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
https://web-camp.io/magazine/archives/18333
https://www.tom08.net/2016-09-16-175901/
この記事を参考に複数選択可能なチェックボックスを作成した
chackboxで`multiple`をつけると配列で値を受け取れるのだが、`params.require`で値を受け取れると`nil`になってしまった
# 解決方法
以下のようにしたところ解決した
“`erb:test.html.erb
関連する記事
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関連のことを調べてみた