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

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

【ポートフォリオ】独学/未経験が10週間でランニング促進Webアプリを作成しました。【Rails / Unicorn / nginx / AWS】

## はじめに
はじめまして、Itoiと申します!
当記事は独学・実務未経験者が、エンジニアの方からレビューを受けながらポートフォリオ(以下PF)を作った記事になります。
「未経験から、現役エンジニアのようにPFを作るには」という観点で制作を行いました。

##### 自己紹介
– 31歳、大卒の経理・物品管理事務の国家公務員

– デジタル・アナログ問わず、技術やモノ作りが大好き
– 独学で業務の自動化プログラムを3つ(VBA)、プライベートで株価スクレイピングプログラム(Python)、それを元に株選定を行うプログラム(VBA。実際に資産運用中)を作成
– 「モノを作る仕事をしたい」と思い立ち、転職活動のためのポートフォリオ作成を始める

今回紹介するPFの作成期間は10週間(2022年2月〜4月中旬)です。

### 目次
1. [作成PF紹介](#作成pf紹介)
2. [使用技術](#使用技術)
3. [技術選定理由](#技術選定理由)
4. [PF作成スケジュール](#pf作成スケジュール)
5. [振り返り](#振り返り)
6. [終わりに](#終わりに)

## 作成P

元記事を表示

AWS/EC2/RDS – MariaDBのインストール手順 with Rails6

こんにちは。
早く駆け出したい @iloveomelette です。

AWSにデプロイを行う際、Rails + MySQLのインストール方法を紹介した記事などはたくさんあるのですが、なぜかMySQLと高い互換性を持つRails + MariaDBのインストール方法はあまり見かけないので、こちらでアウトプットしていきます。

尚、ご指摘箇所がございましたら
ご教授いただけますと幸いです。

## はじめに

では、まず前提として私の動作環境についてお伝えしておきます。

– macOS Monterey 12.3.1 (M1)
– Rails 6.1.5
– MariaDB 10.6.7
– Amazon マシンイメージ (AMI):「無料利用枠の対象 Amazon Linux 2 AMI (HVM), SSD Volume Type 64ビット (x86)」
– インスタンスタイプの選択:「無料利用枠の対象タグの付いた t2.micro」
– RDSも使用

:::note warn
注意
以降、ややこしい記載があるので間違えないようにしてください。
**ローカル環境**のターミ

元記事を表示

【ポートフォリオ】完全未経験が2ヶ月半で「自己内省アプリ」を完全SPA化して作ってみました【Nuxt, Rails, AWS】

# はじめに
ポートフォリオとして作成したWebアプリケーションの紹介記事です!
自分について深く考える「**自己内省アプリ**」を作成しました。

アプリとしても記事としても、まだまだ未熟な点が多いですが、これからブラッシュアップしていきたいと思います(随時更新予定)。:raised_hands:

# 簡単に自己紹介
* 医薬品メーカーの営業事務として働いている24歳。
* フルタイムで働きながら週40時間以上、2ヶ月半の時間を投下して今回のアプリを作りました。

# アプリの概要と開発経緯
* **自己を深く内省(分析)する機会を作るWebアプリケーション**です。
* サービス名は『**Insight**』にしました。
* **自分を知るための様々な質問に回答し、記録**していきます。
* **対象ユーザーは人生の分岐点が多い20〜30代**を想定しています。

私は大学生の頃まで周りに流されて生きていたため、過去の選択に後悔も多く、「**自分って何がしたいんだっけ?**」と悩んだ時期がありました。
当時たまたま出会った自己内省について書かれた本を読んだことで、自分の考え方の基

元記事を表示

Rails6.1 + MySQL + ReactでのDocker環境を構築する

[株式会社TECH LUCK](https://techluck.co.jp/)という会社で代表兼エンジニアをしている齊藤です。

SPAアプリケーションを作成するために、Rails6.1, MySQL, Reactでの開発を行いました。
その際に、`docker-compose`で環境構築を行なったので、その備忘録になります

**バージョン**
Ruby:v3.1.0
Ruby on Rails:v6.1.5
React:v18
docker-compose:v3.7

# 基本のアプリケーション作成
まずはプロジェクトのディレクトリ(RailsとReactを入れるための箱)を作るところから始めます。
この記事では`todoapp`というアプリケーションを作成するという形にします。
また、Railsは`backend`、Reactは`frontend`というアプリケーション名で作成することにします。

“`bash
mkdir todoapp
cd todoapp
rails _6.1.5_ new backend -d mysql –api –no-deps –skip-

元記事を表示

Ruby on Rails 6.1.5 を Ruby 2.7.6 から Ruby 3.0.4 にあげるときにやること

掲題の作業を実施したところ、色々とハマったので、備忘録として残しておきます。

## 環境

* Ruby 2.7.6 -> 3.0.4
* Ruby on Rails 6.1.5

## Ruby 3.0.4 にあげるときに必要なこと

### (WEBrick 以外を使っていない場合) WEBrick をインストールする
#### 理由

Ruby 3.0.0 より WEBrick が標準ライブラリから削除されました。そのため、Ruby 3.0.0 以降で WEBrick を使いたい場合は、別途インストールが必要になります。

https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/

### bootsnap 1.9.3 以上にする

Ruby 3.0.4 で `rails s` を実行すると以下のエラーが発生します。
“`
% bundle exec rails s
$RUBY_HOME/3.0.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq

元記事を表示

Ruby 配列の中にあるハッシュをeachで回す方法

## 実現させたこと
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1248903/bf5eb9a1-d8fd-7661-7bad-b195478d4bd1.png)
上の写真の左側は画像、右側はaタグでそのアカウントに飛ぶようになっている。
ここまでやったこと順番に解説する。

## 実装手順
### データ取得
“`
apps/controllers/application_controller.rb

insta_accounts = LvtInstaAccount.all
@insta_info = []
insta_accounts.each do |insta_account|
data = {}
data[“screen_name”] = insta_account.screen_name
data[“profile_picture_url”] = insta_account.profile_picture_url

元記事を表示

ERROR: While executing gem … (Gem::RemoteFetcher::FetchError)|specs.4.8.gz

Rails newでエラーが発生しました。
以下IPv6環境の方は同じ問題かもしれません。

“`
Could not fetch specs from https://rubygems.org/ due to underlying error
Could not find gem ‘importmap-rails’ in locally installed gems.
“`

# 解決方法
### 1.gemのURLにどのIPであれば接続できそうかを調べます
wgetコマンドは接続に失敗した時、自動で他のIPを探してくれます。

“`
% wget https://rubygems.org/specs.4.8.gz
–2022-04-22 18:06:23– https://rubygems.org/specs.4.8.gz
rubygems.org (rubygems.org) をDNSに問いあわせています… 2a04:

元記事を表示

【初心者】Ruby on Railsでブログを作る

# 概要 :feet:

Ruby on Railsの学習をしています。
1日1つRailsで練習アプリを作る生活3日目です。

明日から、アプリ開発をしようと思っているので最終チェックですね!

参考サイトのを簡略化して実装しているだけなので、詳しくしたり方はそちらをご覧ください。

# 新規アプリを作成 :feet:

“`shell
ubuntu@ubuntuv:~/デスクトップ/projectX$ rails new blog
ubuntu@ubuntuv:~/デスクトップ/projectX$ cd blog
ubuntu@ubuntuv:~/デスクトップ/projectX/blog$ bundle update
ubuntu@ubuntuv:~/デスクトップ/projectX/blog$ bundle install
“`

# Hello Ruby on Rails :feet:

`GET`した`articles`リクエストを`ArticlesController`の`index`アクションに対応付ける
つまり、`/articles`にアクセスが来たら、`hel

元記事を表示

Rails+docker環境構築でyarnが上手くインストールできない

## 概要
Rails6系とdockerで環境構築する際に詰まったので、その原因と解決方法についてを書いています。

## 事象
– dockerfileを使って、docker環境にRailsサーバを立てようとした。
– その際、Railsを使う際の環境要件としてYarnが必要となるが、上手くインストールできなかった。

webpackerをインストールしようとすると…
“`
RUN bundle install && rails webpacker:install
“`
バージョン1以上2以下のyarnが必要ですという下記エラーが発生。
“`
Webpacker requires Yarn “>=1 <2" ``` apt-get installでインストール済みと想定したが、上記エラーにより上手く入っていないことが分かった。 ``` RUN apt-get install -y yarn ``` ## 原因 - yarnのバージョンが古い エラー文の内容をヒントにして原因をググってみたところ、yarnのバージョンが古いと今回のようなエラーが発生するそう。 ## 解決方

元記事を表示

Railsの {OO: :OO} これ何⁇ {OO: OO} とどう違う?

# Railsによく出てくるシンボル、ハッシュについて
## 結論
`{OO: OO}`は、ハッシュのキーとしてシンボルを用いた形である。
そして、
`{OO: :OO}` は、キーがシンボルで値もシンボルであるハッシュのことを指している。
これについて以下で詳しく調べてみる。
## シンボルって何?
文字列の先頭に`:(コロン)`がついているオブジェクトのことを指す。
Stringオブジェクトが文字列を表すのに対して、Symbolオブジェクトは名前を表すものと理解しておく。
##### 1 シンボルは書き換えられない
文字列は書き換えることができるが、シンボルは変更不可である。
##### 2 同じobject_idが割り当てられる
シンボルは同じobject_idが割り当てられるので、以下の通り2つのオブジェクトは同一である。しかし、文字列は2つのオブジェクトは等しいが同一ではない。
“` ruby:ruby
# 文字列
“foo1” == “foo1” #=> true
“foo1”.equal? “foo1” #=> false

# シンボル
:foo1 =

元記事を表示

【Rails】データベースを元に戻す方法

# はじめに
Railsでアプリを開発しているときに、、
やっばっ!!間違って「rails db:migrate」しちゃった!!:cloud_lightning:

ってときありますよね。

そんな時に使える「元に戻す方法」を伝授します:older_man::sparkles:

# 元に戻す方法

### マイグレーションの変更を元に戻す
“`
$ rails db:migrate
# を元に戻したい場合は、、

$ rails db:rollback
# とすればOK!
“`

ちなみに、最初の状態に戻したい時は
“`
$ rails db:migrate VERSION=0
# とすれば戻ります!
“`

## その他、元に戻す方法

### コントローラー
“`Ruby
$ rails generate controller StaticPages home help
# 生成したコントローラーを元に戻すには

$ rails destroy controller StaticPages home help
# として削除すればOK!
“`
コントローラー名、アク

元記事を表示

【備忘録】Herokuでのデプロイの流れ

こんばんは、だいごです。
今回は、Herokuでのデプロイの流れを簡単にまとめていきます。
Herokuのコマンドがメインなので省力するところもあります。
よかったらみてください。

## 予備知識
デプロイ
ネットワークを通じてWebアプリケーションなどのシステムを公開し、利用可能な状態にすること。

CLI
コンピュータに対してキーボードからコマンドという文字を打ち込んで操作を行う仕組み。

– **credentials.yml.encファイル**
Railsにて、外部に漏らしたくない情報を扱う際に用いるファイル。
通常時は、英数字の文字列で構成された暗号文が表示され、ファイル内に何が書かれているのか分からない。
master.keyが存在する場合、ファイル内の記述を確認できる。

– **master.keyファイル**
credentials.yml.encファイルを復号する鍵の役割を持ったファイル。
特定のcredentials.yml.encファイルと対になっているので、その他のファイルでは効果を発揮しない。
また、重要なファイルである

元記事を表示

saved_change_to_{カラム名}?について

## saved_change_to_{カラム名}?
あるカラムの値が変更されたときに何らかのメソッドをコールバックする際によく使われるメソッドです。

例えば、以下のように書くとします
“`
validate :validate_change_name, if: :saved_change_to_name?

def validate_change_name
p “名前が変更されました”
end
“`
このようにすることによって、“`name“`カラムの変更されたあとの処理を書くことができます

【参考資料】

https://masarufuruya.hatenadiary.jp/entry/2020/05/08/093857

元記事を表示

LaravelとRailsのコマンド集(両者の比較)

# LaravelとRailsを比べる
LaravelとRailsは兄弟フレームワークのような存在で
コマンドや環境、特徴は違うけど本質的な部分は同じです。

RailsからLaravel、またはその逆で学習、仕事する人の参考になれば嬉しいです。

# 有益な記事
有益そうな記事がありました。
Railsは見つかりませんでした。汗

⚫︎Laravel

https://qiita.com/shimotaroo/items/6a909797e0139517b1bd

下でもコマンドは紹介します。最低限知っておいた方がいいコマンドです。

# サーバーの起動

⚫︎Laravel
“`
$ php artisan serve
“`

⚫︎Rails
“`
$ rails s
“`

## バージョンの確認
⚫︎Laravel
“`
$ php artisan –version
“`

⚫︎Rails
“`
$ rails -v
“`

## コマンド確認
コマンドを調べる時に使います。

⚫︎Laravel
“`
$ php artisan list
“`

⚫︎

元記事を表示

Uncaught ReferenceError: $ is not defined Rails6

Rails6で非同期処理がうまくいかなかったので備忘録。

:::note alert
Uncaught ReferenceError: $ is not defined
:::

##### 原因としては
・jQueryがうまく読み込めていなかった。
・Rails6でのjQuery導入ができていなかった

:writing_hand:参考にした記事

Introducing jQuery in Rails 6 Using Webpacker

#### 導入方法

“`
$ yarn add jquery
““

config/webpack/environment.js
javascript/packs/application.js
に下記を追加

“`environment.js
const { environment } = require(‘@rails/webpacker’)

//追加部分
const webpack = require(‘webpack’)
enviro

元記事を表示

【rails入門】ページのスクロールに合わせて要素を動かす!

# 完成したこんな感じ
![scroll.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2586059/f51bc88d-cda0-6d18-927e-7cfba53be42f.gif)

スクロールに応じて要素を左右に動かす!

# コード
“`html:index.html

My name is Naoya.

GeekSalon Fukuoka