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

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

さくらvpsにRailsアプリをデプロイするまで (4) Homebrew導入

# 1. Homebrewを入れたい
 ローカルと同様に、さくらvpsにもHomebrewを入れてみようと思った。ひとまず公式ページから以下の文面をコピペしてやってみる。

https://brew.sh/index_ja

“`
# /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`

そうするとエラーが出た。

“`
略….
curl: (1) Protocol “https” not supported or disabled in libcurl
“`

curlがhttpsに対応してないらしい。なんと。ためしに`curl -V` とやるといっぱいでてきたけどhttpsの文字はなかった。
コピーをとってなかったが、たしか初期にあったバージョンはcurl v 7.2くらいだった。

yumでcurlのバージョンアップをしようとしたが、バージョンが上がらなかった。どうしよう。パッケージからやっていくことにした。

# 2.

元記事を表示

Rails x Nuxt.jsのSPAをECSのfargateへデプロイする際にハマったこと・その対処法

## はじめに
[こちらの記事](https://zenn.dev/hibriiiiidge/books/49ee4063b10cec1df1a2/viewer/2ac314f5633e674d4b0c)を参考にデプロイしてハマったこととその対処法を備忘録として書いていきます

# 1. Zeitwerk::NameError
Railsアプリのタスクが起動せず以下エラーが発生
“`
Unable to load application: Zeitwerk::NameError: expected file /app/app/controllers/hoges_controller.rb to define constant HogesController, but didn’t
“`
ディレクトリ構成が`controllers/v1/コントローラのファイル`となってるところを、1つ上を読み込んでしまっている状態

## 対処法
application.rbに以下を追加
“`:api/config/application.rb
config.autoloader = :class

元記事を表示

【Rails5】Warning: ReactDOM.render is no longer supported in React 18.

# 1.はじめに
– [「現場で使える Ruby on Rails 5速習実践ガイド」](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B-Ruby-Rails-5%E9%80%9F%E7%BF%92%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E5%A4%A7%E5%A0%B4%E5%AF%A7%E5%AD%90/dp/4839962227)を読み進めて、Reactを導入しようとした。
– 開発環境は、次のとおり。
“`Ruby:terminal
$ ruby -v
ruby 2.6.9p207 (2021-11-24 revision 67954) [x86_64-darwin19]
$ rails -v
Rails 5.2.7
“`
# 2.はまったこと
– Reactを導入して、試したところ、ブラウザに“`hello“`が表示されない。
– ChromeのディベロッパーツールでConsole画面を確認したところ、次

元記事を表示

プロジェクトのgem, 端末にインストールされるgem,どっちを使うか指定する方法

## gemとは?
2つの意味があります。
1. **Rubyのライブラリ** のことです。詳細は[こちら。](https://www.ruby-lang.org/ja/libraries/)
1. **gemを管理するパッケージ管理ツール**の名前

ただ、gemというツールでパッケージを管理すると、依存関係で問題が発生することがあります。
そこでBundlerが登場します。

## bundlerとは?
依存関係を考慮してgemを管理してくれるパッケージ管理ツールです。
https://bundler.io

## Gemのインストール方法は大きく2種類

1. 端末全体で使えるタイプ(globalインストール)
mac,windows内のどこでも使えるようになる。
1. プロジェクト(特定の階層)でのみ使えるタイプ(localインストール)
作っているアプリの中で使えるようになる。

# 結論

### `bundle exec`をつける = ローカルインストールのgemが呼ばれる
例)
“`
bundle exec rails g controller users

元記事を表示

ActiveSupport::Concernでモジュールを作る

## Concernとは
Concerntとは「関心事」という意味で、Railsではコントローラやモデルの一部の概念や機能を実装するモジュールのことを指します。Concernを用いることで、ある特定の概念や機能をコントローラやモデルから切り出すことができ、複数のコントローラやモデル間で使い回すことができます。クラス、モジュール間のincludeやextendの説明はここでは省きます。

## スコープ
以下のようにPhotoモデルとVideoモデルに共通のスコープが定義されていたとします。

“`ruby:photo.rb
class Photo < ApplicationRecord scope :display_member_only, -> { where(member_only: true) }
end
“`

“`ruby:video.rb
class Video < ApplicationRecord scope :display_member_only, -> { where(member_only: true) }
end
“`

このとき、以下

元記事を表示

【Rails5】No route matches [GET] “/loginout”

# 1. はじめに
– [「現場で使える Ruby on Rails 5速習実践ガイド」](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B-Ruby-Rails-5%E9%80%9F%E7%BF%92%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E5%A4%A7%E5%A0%B4%E5%AF%A7%E5%AD%90/dp/4839962227)を進めています。
– 開発環境については、次のとおりです。
“`
$ ruby -v
ruby 2.6.9p207 (2021-11-24 revision 67954) [x86_64-darwin19]
$ rails -v
Rails 5.2.7
“`
“`Ruby:Gemfile
gem ‘turbolinks’, ‘~> 2.5.3’
“`
# 2. はまったこと
– 一覧画面からログアウトしようとしたところ、“`No route matches [GET] “/log

元記事を表示

【Rails エラー】 NameError (uninitialized constant クラス名)

Rails cで、Rails: NameError (uninitialized constant クラス名)のエラーに遭遇。

以下を試したところエラーが消えました。

“`
$ exit #rails cから一旦出る
$ spring stop
$ rails c #もう一度、rails c
“`

元記事を表示

rails db:seed 重複データを削除する方法

rails db:seedは上書きされると勘違いしており、
rails cで確認するとデータが重複していた。
データベースの中身をリセットしてから、再度 rails db:seedを実行する。

“`
$ rails db:seed:reset
“`

“`
$ rails db:seed
“`

元記事を表示

【Rails・備忘録】deviseについて

## はじめに
こんにちは、だいごです。
今回は、Railsにおいてユーザー管理機能を簡単に実装することができるdeviseについてまとめていきます。
よかったらご覧ください。

## deviseとは
![ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600899/ca14f8c0-fd99-61b1-a4cc-58424d886b96.png)

ユーザー管理機能を簡単に実装するためのGem(※1)。
ログイン、サインアップなどのログイン機能を1から構築するのはかなり大変ですが、Deviseを利用することで簡単に実装することが出来ます。

deviseで実装できる主な機能としては、
– サインアップ機能
– サインイン機能
– アカウント編集機能
– パスワード変更機能
– メール認証機能
– アカウント凍結機能

(※1)RubyGemsにはたくさんのライブラリがあり、それぞれをGemと呼ぶ。

## deviseの使い方
ここからはdeviseのインストールからデバイス関連の

元記事を表示

RailsでHerokuに初期データが反映されなくてハマってました

# はじめに
seeds.rbを本番環境に反映させようとしたがうまくいかずに困ってました。
無事にherokuに反映することができたので、メモ用に投稿します。
## 自分の環境
* Rails 6.0.3
* Ruby 2.6.3
* AWS Cloud9
## 前提
seeds.rb作成済み
## 初期データの投入方法
### ローカルの設定を完了させる
“`
$ rails db:migrate:reset
$ rails db:seed
“`
### gitにプッシュする
“`
$ git add -A
$ git commit -m “メッセージ”
$ git push
$ git push heroku
“`
### Herokuのデータベースをリセットする
“`
$ heroku pg:reset DATABASE
“`
### herokuでマイグレーションを実行する
“`
$ heroku run rails db:migrate
“`
### seedデータを投入
“`
$ heroku run rails db:seed
“`
これで初期データの

元記事を表示

【M1 mac】 An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.

### M1 macでmysql 0.5.3がインストールできない

データベースをMySQLでrails newをしたところ、下記のエラーに遭遇。
“`
$rails new myapp –webpack=react –database=mysql -T

….省略
An error occurred while installing pg (1.3.5), and Bundler cannot
continue.
Make sure that `gem install pg -v ‘1.3.5’ –source ‘https://rubygems.org/’`
succeeds before bundling.

In Gemfile:
…省略
“`

[こちら](https://zenn.dev/kosuke_ito/articles/0d508035bcd570)の記事のおかげで無事にインストールできました!!

“`
$ brew install openssl
$ echo ‘export PATH=”/opt/homebrew/opt/openssl

元記事を表示

RailsでSafariとChromeでPDFを表示する

## ブラウザ対応

– Active Storage

| ブラウザ | iframe | object | embed |
| —- | —- | —- | —- |
| Chrome | ○ | ○ | ○ |
| Safari | ○ | x | x |

– Carrier Wave

| ブラウザ | iframe | object | embed |
| —- | —- | —- | —- |
| Chrome | ○ | ○ | ○ |
| Safari | ○ | ○ | ○ |

Carrier Waveを使用している場合は何も気にしなくて良いけど、Active Storageの場合は`object`や`embed`を使用するとPDFが表示されないため、`iframe`を使用する必要がある。

## 記述方法

– iframe
“`rb