Rails関連のことを調べてみた2022年11月06日

Rails関連のことを調べてみた2022年11月06日
目次

Ruby 麻雀の配牌を作成する

RUbyで麻雀アプリを作成するために勉強中

まずは簡単なところから作成します。
麻雀牌34種136枚から14枚をランダムに抜き取って表示します。

# コード紹介

“`Ruby:majons_controller.rb
class MajonsController < ApplicationController def index majon_pais = ["m1", "m1", "m1", "m1", "m2", "m2", "m2", "m2", "m3", "m3", "m3", "m3", "m4", "m4", "m4", "m4", "m5", "m5", "m5", "m5", "m6", "m6", "m6", "m6", "m7", "m7", "m7", "m7", "m8", "m8", "m8", "m8", "m9", "m9", "m9", "m9", "p1", "p1", "p1", "p1", "p2", "p2", "p2", "p2", "p3", "p3", "p3", "p3", "p4", "p4", "p4"

元記事を表示

【29歳/未経験/独学】転職活動用SPAポートフォリオをご紹介します!【Nuxt.js, Rails, Docker, CircleCI, AWS ECS(Fargate), Terraform】

# はじめに

こんにちは!
Qiita記事初投稿となります。

掲題の通り、実務未経験からWEBエンジニアへ転職するためにポートフォリオを制作しました!
まだまだ初心者レベルですが、自身の振り返りも兼ねて、簡単にご紹介できればと思います。

もし同じような境遇の方にとって何か参考になる点があれば、とても嬉しく思います!

## 経歴

簡単な自己紹介です!

– 29歳
– 大卒(文系)
– 営業2年→SE5年→現在

IT業界出身ではありますが、プログラミングによる開発業務はほぼ有りませんでした。
システムやプログラムに対する耐性が多少ある程度で、WEB開発のスキルにおいてはほぼ0からのスタートでした。

また高学歴出身でもなく、学生時代は勉強は苦手なタイプで部活ばかりしてました。

# ポートフォリオ

## 概要

サービス名:**DigLive**

– [サイトURL](http://dig-live.com)
– [GitHubリポジトリ](https://github.com/takepro14/DigLive)

『DigLive』はYouTubeのお気に入りのライブ

元記事を表示

【Rails,Mysql】DBの中身確認に関するメモ

# DBの中身確認
完全にメモになるので、詳細な内容の説明は割愛する。
本番環境にDockerを使ったRailsアプリのDBの中身を確認する。尚、DBはRDSを使用し、Mysqlで管理している。
まずEC2にSSH接続し、dockerをビルド、アップし直す。その上で以下を実行する。
“`:terminal
$ docker-compose exec app rails db:create
#まだDBを作成していない場合

$ docker-compose exec app rails db:migrate
“`
その上で、

“`
$ docker-compose exec app rails dbconsole
“`
ここでパスワードを聞かれるので、DBのパスワードを入力するとクエリを打てるようになる。

例えば、作成したusersデータの内容を確認したければ、“`select * from users\G“`のように実行する。また、データの仕様を確認したい時には、“`describe users“` のように実行すればよい。

# コンテナにログインしてDBを確認

元記事を表示

RailsでのRPC, REST, ドキュメント, クライアント自動生成について調べた

## GraphQL
https://github.com/rmosolgo/graphql-ruby

クエリを1回で取得できないのが悩み
コードにドキュメントを書く

### GraphQLのクライアントコードジェネレータ
https://github.com/dotansimha/graphql-code-generator

## REST + jsonapi-serializer + OpenAPI
https://github.com/jsonapi-serializer/jsonapi-serializer

Netflix製 早いらしい
OpenAPIを手書きする必要がある。
クライアントとサーバー同時開発し、最初にOpenAPIから書くならば良さそう

### OpenAPIのクライアントコードジェネレータ
https://github.com/OpenAPITools/openapi-generator

## gRPC
https://github.com/grpc/grpc/tree/master/src/ruby

webの場合、envoy proxyが必

元記事を表示

gem `puma`を6.0にアップグレードすると`capybara` の初期化で`NoMethodError: undefined method `strings’ for Puma::Events:Class`エラーが発生する問題の対処法

# 結論

`puma`を`6.0`以上で動作する場合`capybara`は`3.38.0`以上のバージョンが必要です

# 詳細

#### 1. 元々`puma`の実装で`Puma::Events`クラスは以下の2つの異なる責務を担っており責務過多だった

– ロギング
– コールバックイベントの管理

#### 2. 上記の2つをそれぞれの`class`に分離するBreaking changeが入るリファクタリングを行い`6.0`でリリース

https://github.com/puma/puma/pull/2798

#### 3. `capybara`で“Puma::Events`を参照していたが上記の変更の影響を受けてエラーが発生

“`ruby
Failure/Error: events = conf.options[:Silent] ? ::Puma::Events.strings : ::Puma::Events.stdio

NoMethodError:
undefined method `strings’ for Puma::Ev

元記事を表示

rails db:resetした時にActiveRecord::MismatchedForeignKeyと出た際の解決法

## 環境
– Ruby3系
– Rails7系
– MySQL
(SQLiteからMySQLにDBを変更しようとした際にエラーが発生した)

## エラー内容
“`terminal:terminal
rails db:reset
と実行したら↓

ActiveRecord::MismatchedForeignKey:
↑エラーが発生した
“`

## 解決法
“`terminal:terminal
rails db:migrate:reset
“`
を実行すれば、ActiveRecord::MismatchedForeignKeyが出ずに正常に動作します✅

## 原因
“`rails db:reset“`は、
1. 全テーブルdrop
1. schema.rbを元にDBを作成

します。
なので、**reference先が作られていないのに、任意のテーブルのreferenceカラムが先に作成されて、今回のエラーが発生します!**

そして、、、

“`rails db:migrate:reset“`は、
1. 全テーブルをdrop
1. migrationファ

元記事を表示

railsのマイグレーションの見方・できること

# 動機
MySQLに直接テーブルを作っていたためこれからのことを考えて、使えるように勉強する。
一応テーブルを作成するところまでできるようになりたい。

# マイグレーションとは?
マイグレーションは、“`データベーススキーマの継続的な変更(英語)を、統一的かつ簡単に行なう“`ための便利な手法です。マイグレーションでは“`RubyのDSL“`が使われているので、生のSQLを作成する必要がなく、“`スキーマおよびスキーマ変更がデータベースに依存しなく“`なります。

“`個別のマイグレーションは、データベースの新しい「バージョン」“`とみなせます。“`スキーマは空の状態から始まり“`、マイグレーションによる変更が加わるたびにテーブル、カラム、エントリが追加または削除されます。Active Recordはマイグレーションの時系列に沿ってスキーマを更新する方法を知っているので、“`履歴のどの時点からでも最新バージョンのスキーマに更新“`できます。Active Recordは“`db/schema.rb“`ファイルを更新し、“`データベースの最新の構造と一致する

元記事を表示

【Rails】params周りの理解を深める回〜”param is missing or the value is empty”へのアプローチ法〜

Railsのparams周りのエラーについて。
とある情報を保存しようとしたときに出てしまったので残す。

エラー文

![スクリーンショット 2022-11-05 13.13.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059549/ce21ac0d-a192-5bc3-6234-d477c05cbb5e.png)

paramsが存在していない、または空であるという意味らしい。

問題となっているファイルのコード

“`ruby:memory_submits_controller.rb
class MemorySubmitsController < ApplicationController def index @memorys = MemorySubmit.all end def new @memory = MemorySubmit.new end def create memory = MemoryS

元記事を表示

Railsコマンド備忘録

✨Railsコマンド備忘録

# Railsアプリケーションを作成
% rails new アプリケーション名

# Railsのバージョンを指定してアプリケーションを作成(6.0.0の場合)
% rails _6.0.0_ new アプリケーション名

# オプションを付けてアプリケーションを作成(6.0.0の場合)
% rails _6.0.0_ new アプリケーション名 -オプション名

# データベース管理システムにmysqlを指定
% rails new アプリケーション名 -d mysql

# データベースを作成する
% rails db:create

# ローカルサーバーを起動
% rails s

# 設定されているルーティングを確認
% rails routes

# ファイルを生成する
% rails g ファイルの種類 生成するファイル名

# コントローラーを作成
% rails g controller コントローラー名

# 例)postsコントローラーを作成
% 例)rails g controller posts

# マイグレーションを実行
%

元記事を表示

アプリケーション開発の開発工程(リマインドノート)

アプリケーション開発の開発工程(リマインドノート)


①企画:APPの内容を考案
・課題をヒアリングする対象者を選定
例)友人、社会問題を抱える架空の人物など

・対象者の属性をヒアリング
例)性別、年代など

・対象者の抱えている課題を洗い出し
例)学習を継続できないなど

・課題の深掘り
※課題に対し、「なぜ?」を繰り返し、原因を深掘り
例)学習を継続できないの場合

・課題解決をできるAPPの考案
例)APP内容 : 目標のシェアで、ユーザー同士で励まし合えるAPP

・ユーザーストーリーの考案
例)目標シェアのためには? : 目標管理機能
例)ユーザー同士の励まし合いは? : ユーザー管理機能、コメント管理機能

・+@の考案
例)より便利にするには? : フォロー管理機能、お気に入り管理機能
例)ユーザーを増やすには? : SNSログイン機能、SNS共有機能
例)マネタイズ化するには? : 投げ銭システム管理機能


②要件定義:APPの仕様と要件の洗い出し
「機能(大分類)」:実装したい機能を大小で分ける。
「機能(小分類)」:実装したい機能を大小で分ける

元記事を表示

実践編勉強会_20221120

## 本日の内容

– 受講生への共有事項
– フリーエンジニアになるために最低限必要なこと

## 受講生への共有事項

– 営業サポートについて
– 人工インターン経験が6ヶ月を経過したら営業サポートが受けられます。
– 営業サポート開始〜案件の獲得までは最低2ヶ月程度見ておいてください。
– 営業サポートへのご案内はこちらからは行っていません。そのため「そろそろ案件探しに入りたい」というタイミングになったら受講生から→スタッフ江草までご連絡をお願いします。

プライベートや現職の都合で「ある決まった時期までフリーエンジになれない」という方以外は、少々自分の技術力に自信がなくても早めにフリーエンジニアとして現場に出ることをお勧めします。

なぜなら「現場でのチーム開発は効率良くプログラミングスキルを上げれられる絶好のチャンスだから」です?

フリーエンジエンジニアとして報酬をいただきながら、次の現場での単価UPを積極的に狙っていきましょう!
単価を上げるためには半年〜1年程度で現場を移るのがポイントです。

## フリーエンジニアになるために最低限必要

元記事を表示

Guardの自動テストがRunningのまま動かない【Windows・Railsチュートリアル3章】

Cloud9使わずローカル環境で実施していたせいか、チュートリアルに記載の通りに行ってもGuardがうまく動かなかった。
解決策をメモしておく。

# 概要
下記リンク、「3.6.2 Guardによるテストの自動化」に記載されているGuardの初期化、Guardfileの編集を行ったものの、自動テストが完了しなかった。
https://railstutorial.jp/chapters/static_pages?version=6.0#sec-guard

こんな感じで `Running: ~` のあと `[1] guard(main)>` と出たまま動かない。
“`
00:52:47 – INFO – Running: test/controllers/static_pages_controller_test.rb
[1] guard(main)>
“`
待っていれば結果が出てくるのかな?と思ったが、いつまで経っても何も起こらなかった。

念のため `spring stop` コマンドも実行したが、
“`
Spring is not running
“`
と言われるだけで、再

元記事を表示

Railsでバージョン指定してのプロジェクト作成に失敗した時の対処法

# 課題

Rails 6.1.4.4でプロジェクト作成しようと

“`
rails _6.1.4.4_ new project_name
“`

を走らせるが以下のようなエラーが出力される。

“`
`find_spec_for_exe’: can’t find gem bundler (>= 6.1.4.4) with executable bundle (Gem::GemNotFoundException)
“`

# 仮説

以前はこれでプロジェクトを作成できていたのですが、以前沼に嵌った時にRailsのバージョンを消去した記憶がうっすらあったのでその時に6.1.4.4を削除していたかもしれない。

# 解決方法

– Rails 6.1.4.4を再度インストール

“`
gem i -v 6.1.4.4 rails
“`

で解決しました。

以下の記事が参考になりました。

https://qiita.com/tanakayo/items/7b85261924eca1a5a3d6

# 結論

必要なバージョンがインストールされていなかっただけでした。

なかな

元記事を表示

エラーメッセージについて

## 初めに
エラーメッセージの実装の仕方について簡単に記録のために書いておこうと思います。

## viewに記述

“`app/views/users/_errors.html.erb
<% if @user.errors.any? %>
<%= @user.errors.count %>件のエラーが発生しました

    <% @user.errors.full_messages.each do |message| %>

  • <%= message %>
  • <% end %>

<% end %>
“`

今回はuesrのeditに部分テンプレートで表示させたいのでこのように記述します。
<%= @user.errors.count %>件のエラーが発生しましたの部分で例えば3件記述の忘れがあれば3件のエラーが発生しましたとviewに表示されるようになります。

## 実際にeditに記述
“`app/views/users/edit.html.erb

ユーザー情報編集

<%= render 'users/err

元記事を表示

railsを5000ポートで起動してブラウザで7000ポートでアクセスできるようにする

# 目的
dockerを使っていて、ポートの理解の理解が足りておらず接続エラーになったのでメモ。

Docker Documentation: https://docs.docker.com/compose/compose-file/compose-file-v3/#ports
をみていて、hostのポートとコンテナのポートについて理解したことを書いた。

# docker-compose

ポートマッピングするにはdocker-composeに以下のように書く。

“`docker-compose
web:
ports:
– “3000:3000”
“`
いくつか書き方があるが、上記の書き方はDocker Documentationの

>Specify both ports (HOST:CONTAINER)

に従っている。ここの意味は「コンテナはポート番号3000で起動していて、ホストのサーバーはポート番号3000で起動していますよ」ということ。どちらも3000なのでわかりづらいが、

もし“`- “3001:3000″“`とした場合「コンテナはポート番号30

元記事を表示

【個人開発】300円以内でおやつを選ぶアプリを作りました【えんそくのおやつは300えんまで!】

# はじめに
はじめまして。
山田貴俊と申します。
先日「えんそくのおやつは300えんまで!」というアプリケーションをリリースしました。
内容は単純、300円以内でおやつを選ぶアプリです。



```

↓HTMLにべた書きすべき「ルート3」はMathJaxではこのように記述するので・・・

```html
3
```
↓これをこんなふうにHTMLにべた書きすると・・・
```ruby:quiz.html.erb

元記事を表示

AWS(S3)に画像をアップロードする

# はじめに
AWS(S3)に画像データを保存する必要性や手順をまとめたいと思います。
現状、herokuを用いてアプリのアップロードを行なっていますが、アップロードされた画像はアプリケーションのディレクトリに保存されていました。
しかし、ユーザーがアップロードした画像データは、アプリがデプロイまたは再起動(24時間に1回自動で行われる)される度に、消えてしまう仕様になっています。
そこで、ストレージサービス(画像等の膨大になるであろうデータを別途保管できる場所、サービスのこと)を利用することで、画像を長期的に保存することができるようになります。
ストレージサービスには様々な種類がありますが、今回はAWSが提供しているS3というサービスを使用します。

## S3(Amazon Simple Storage Service)とは
S3とは、AWSが提供するサービスの一つです。
(インターネット上にデータを保存する箱を借りられるサービスであるとイメージをすると良い。)
S3を利用することで、画像を保存したり、保存してある画像を取得したりすることができます。
S3に保存されたデータは実在の

元記事を表示

【Rails,Rspec】deviseによる認証機構のテストを書こうと思う。

# rspecの設定
deviseによる認証機構について、とりあえず手始めに、model specを書いていこうと思う。
まずRSpecを導入するために以下の通りgemをinstallする。(今回、開発環境にはdockerを使用している)
```ruby:Gemfile
gem 'rspec-rails'
gem "factory_bot_rails"
```
```:terminal
$ docker-compose exec app bundle install
```

```:terminal
$ docker-compose exec app bundle exec rails g rspec:install
```

# rails_helper.rb の追記
```ruby:spec/rails_helper.rb
# This file is copied to spec/ when you run 'rails generate rspec:install'
require 'spec_helper'
ENV['RAILS_ENV'] ||= 'test'

元記事を表示

VSCode使っている時にActiveSupport::MessageEncryptor::InvalidMessageが出たら最初に疑うこと

## 結論
各.encファイル内でvscodeによる自動改行が入っており、その改行のせいでうまく動いていない可能性があるのでVSCodeの設定を見直す

## 起こったこと
リモートリポジトリからpullした後にrailsコマンドを使用すると

```ターミナル
ActiveSupport::MessageEncryptor::InvalidMessage
```
のエラーが出力されるようになりました。

## 調べたこと
まずこのエラーは
```ターミナル
ActiveSupport::MessageEncryptor::InvalidMessage
```
本来セットになっているはずの暗号化されているファイル(hoge.yml.enc)とそれに対応するキー(hoge.key)が一致していないのが原因
扉の鍵穴と鍵が一致していないのが原因である。

詳しくは↓↓
https://hirocorpblog.com/rails-credentials-master/

## 原因
今回起きたことは
vscodeの設定で自動で改行が入り、その改行のせいでファイルとキーが一致しなくなて

元記事を表示

OTHERカテゴリの最新記事