Ruby関連のことを調べてみた2022年09月01日

Ruby関連のことを調べてみた2022年09月01日
目次

/Users/*****/.rbenv/shims/rails: line 21: /usr/local/Cellar/rbenv/1.1.2/libexec/rbenv: No such file or directoryの解決方法

## 何をしたらこのエラーが出たか
以下のコマンドを押したときにエラーが出た。
“`
brew install imagemagick
“`

## 解決までに試したこと
まず、cd start-appで移動してから、始まります。

“`
[******@******: (画像投稿機能の実装)start-app]$rails s
/Users/******/.rbenv/shims/rails: line 21: /usr/local/Cellar/rbenv/1.1.2/libexec/rbenv: No such file or directory
“`
“`
[******@******: (画像投稿機能の実装)start-app]$rbenv rehash
rbenv: cannot rehash: /Users/yuma_mukai/.rbenv/shims/.rbenv-shim exists
“`
rehashができない。
ここで、rbenvに問題があることがわかる。

“`
[******@******: (画像投稿機能の実装)start-app]$rbe

元記事を表示

direnv: error can’t find bash: exec: “bash”: executable file not found in $PATHエラーの解決方法

## どういう状況だったか
あらゆるコマンド(ls,ruby -v,rails s等)を押しても、command not foundになってしまっていた。

## 原因
vim ~/.bash_profileで、PATHの環境変数をいじって、source ~/.bash_profileで反映させた時、誤字が含まれてしまった。実際に、echo $PATHで確認してみると、以下のように表示された。
https://gyazo.com/fa12919337960c038255c183cb6c765b

## 解決方法
bash_profileの中身がおかしくなっていた時に、上記のエラーが出た。そして、vim ~/.bash_profileコマンドでは弾かれたので、ホームディレクトリで/usr/bin/vi .bash_profileコマンドを押すことによって、bash_profileの中身は確認できる。

以下は同じ意味
“`
/usr/bin/vim .bash_profile
vim ~/.bash_profile
“`

bash_profileに誤字かスペースが入っていたため、

元記事を表示

GoogleDriveが表示されない。

# はじめに
本記事はプログラミング初心者が、railsの学習を進めながら、躓いた部分、解決した箇所、またそれらの解決方法を備忘録も兼ねてまとめているものです。
最初はprogate。そのあと、「現場で使える RubyonRails5 速習実践ガイド」(通称)「現場Rails」を参考に進めていきました。
そのため、記事の内容には誤りがある可能性があることをご理解ください。
誤りがあればお手数ですが、ご指摘いただければと思います。よろしくお願いします。

# 環境
Ruby 3.1.2
Rails 7.0.3.1

“`new.slim
.d-flex.flex-column.bd-highlight.mb-3
iframe src=”https://drive.google.com/file/d/1VuZoeLxVGNaEAs41OFyc5tCWpTU8Wbq4/view?usp=sharing” width=”100%” height=”100%”
.d-flex.justify-content-center
= f.check_box :agree

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの関数定義の比較 (メソッド定義・サブルーチン定義なども)

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの関数定義の比較 (メソッド定義・サブルーチン定義なども)

# Python

https://qiita.com/simonritchie/items/0f7b3768031dda834907

# Ruby

https://qiita.com/shizen-shin/items/dd41d1f0176a5e764f9f

# PHP

https://qiita.com/miriwo/items/a33688165a5f36ea8e76

# Java

https://qiita.com/takahirocook/items/5bfe43576d87a2a4006c

# JavaScript

https://qiita.com/tomcky/items/988fc5f56d019e9dc097

# Perl

ht

元記事を表示

Rubyで標準入力から値を受け取る方法 2022年版

# はじめに
この記事はプログラミング問題などでよく見られる標準入力から、値を受け取る方法をまとめたものです。
# 前提
使用する言語はRubyです
# 一行に1要素のとき(文字列)
### 標準入力
“`
Ruby
“`
### 標準入力を受け取るコード
“`
string = gets
“`
### 出力するコード
“`
p string
“`
### 出力結果
“`
“Ruby”
“`
# 一行に半角スペース刻みで要素があるとき(文字列)

### 標準入力
“`
Ruby PHP Python
“`
### 標準入力を受け取るコード
“`
strings = gets.split
“`
### 出力するコード
“`
p strings
“`
### 出力結果
“`
[“Ruby”, “PHP”, “Python”]
“`
splitを使用することで3つの要素をそれぞれ別のものとして配列に格納しています
※splitの使い方
split(‘ ‘)としている記事などもありますが半角スペースの場合は引数を指定しなくても問題ありません。

元記事を表示

python 使いの ruby メモ

# 概要
python と ruby はメソッドなどは大体同じなんですがちょいちょい違うところがあるので個人的な備忘録として作成しました。随時加筆します。

# ruby メモ
## 文法・作法
– `:` はいらない
– python だと定義文やコンテキストブロックを作るときに必要だが ruby は不要
– `if` `elsif` `else` `end`
– python だと `if` ブロックを閉じるときはインデントを抜けるだけだが ruby は終了範囲を明示的に `end` で指定する必要あり
– `return` は書かない
– 書いてもエラーは起きないが慣習的に書かない
– 関数 / メソッドの最後に評価された値が勝手に戻り値になるので明示的に書かなくてよい
– `unless`
– python で書くなら `if not`
– `case` `when`
– `case state` `when value` で条件分岐を書ける。複数条件あるときに便利
– python だと `match` `case

元記事を表示

【Rails】ActionMailerで作成したメールを簡単にプレビューで見る方法

## 環境
Rails 6.0.1
Ruby 2.6.3
PostgreSQL 11.16

## プレビューで見る方法

“`ruby
class UserRegisterMailer < ApplicationMailer default from: 'info@example.com' def registered_email(user) @name = user.name @email = user.email mail to: @email, subject: 'ご登録ありがとうございます' end end ``` ```UserRegisterMailer```なら```UserRegisterMailerPreview```という名前で```Preview```を作成。 ```Preview```では```registered_email```メソッドに引数を渡せないので注意。 ```ruby class UserRegisterMailerPreview < ActionMailer::Preview def regist

元記事を表示

【Rails】マイグレーション時に既存データも一緒に更新する方法

## 環境
Rails 6.0.1
Ruby 2.6.3
PostgreSQL 11.16

## 前提

“`Category“`モデルに“`code“`というカラムがあったが“`name“`を追加したい
その際、下記の既存データの“`code“`の値を“`name“`カラムに更新したい

“`ruby
Category.seed(:id,
{ id: 1, code: Category.code.ruby.value },
{ id: 2, code: Category.code.rails.value },
{ id: 3, code: Category.code.php.value },
{ id: 4, code: Category.code.laravel.value },
{ id: 5, code: Category.code.js.value },
{ id: 6, code: Category.code.java.value },
{ id: 7, code: Category.code.kotlin.value }

元記事を表示

【入門】RubyのDateクラスについて

# はじめに
今回は、Rubyの標準ライブラリである `Dateクラス`についてまとめます。

※おことわり※
基本的に学習内容のアウトプットです。
初学者であるため、間違い等あればご指摘いただけますと嬉しいです。

# この記事の目的
– Rubyのライブラリと、Dateクラスのアウトプット

# この記事の内容
1. ライブラリについて
2. Dateクラスについて

# 1. ライブラリについて

ライブラリとは、汎用性が高いプログラムコードを集めたファイル郡のことです。 ※フレームワークは別物
標準ライブラリと、外部ライブラリの2種類があります。(参照:画像)

[![Image from Gyazo](https://i.gyazo.com/29bfb09733f7cddaf93c17447b8cb276.png)](https://gyazo.com/29bfb09733f7cddaf93c17447b8cb276)

– ライブラリ一覧
https://docs.ruby-lang.org/ja/latest/library/index.html

– 組み込みライブラ

元記事を表示

【入門】必ず覚えておきたいRubyの基礎

## はじめに

今回は、Rubyの基礎についてまとめます。

※おことわり※
基本的に学習内容のアウトプットです。
初学者であるため、間違い等あればご指摘いただけますと嬉しいです。

## この記事の目的
– Ruby基礎内容のアウトプット

## この記事の内容
1. ハッシュの基礎
2. 二重ハッシュ
3. クラスとインスタンス

## 1. ハッシュの基礎

ハッシュとは、複数のオブジェクトをキーとバリューのセットで、まとめて管理することがきるオブジェクトです。
**ハッシュは、`キー` で要素を管理している**ことがポイントです。
キーとバリューのセットを、 `キーバリューストア` と言います。

– ハッシュの書き方
“`ruby
#書き方① シンボル
hash = { キー: 値}

#書き方② ロケットハッシュ
hash = {:キー=> 値}
“`

– キーの取得方法(keysメソッド)
“`ruby
#オブジェクト.keys
hash.keys
“`

– バリューの取得方法(valuesメソッド)
“`ruby
#オブジェクト.values
has

元記事を表示

【Rails】生SQLを書きそうになったらsanitize_sql_for_orderを検討しよう

## 環境
Rails 6.0.1
Ruby 2.6.3
PostgreSQL 11.16

##
UserモデルにPost作成日でnilが最後に来るようにソートするスコープがあったとき、
“`created_at_sort“`に入ってきた値が“`desc“`か“`asc“`で降順か昇順にソートしている。
“`order“`の中で生のSQLを書くことになってしまいセキュリティとしてあまり良くない。
あと美しくない。
“`models/user.rb
scope :sort_by_created_at, ->(created_at_sort) do
if created_at_sort == ‘desc’
eager_load(:posts)
.order(‘posts.created_at DESC NULLS LAST’)
.select(‘users.*’, ‘posts.created_at AS posts_created_at’)
else
eager_loa

元記事を表示

RuboCopでC: [Correctable] Rails/RakeEnvironment: Include :environmentと指示された

## RuboCopで指摘されたこと
`bundle exec rubocop`を実行すると、以下のエラーが生じました。
“`ruby:エラー内容
lib/tasks/auto_annotate_models.rake:6:3: C: [Correctable] Rails/RakeEnvironment:
Include :environment task as a dependency for all Rake tasks.
task :set_annotation_options do
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
“`

結論を言うと`auto_annotate_models.rake`の記載を以下のように修正することで解決できます。
“`ruby:修正内容
– task :set_annotation_options do
+ task :set_annotation_options => environment do
“`

## エラー解消のために行ったこと
エラーメッセージの内容が`task :set_annotation_

元記事を表示

Web APIのエンドポイントやレスポンスにIDを使用してはいけないか考える

# はじめに
皆様、こんにちは!
佐久間まゆちゃんのプロデューサーの[@hiroki_tanaka](https://note.com/hiroki_tanaka)です。

私は現在、RailsシステムのAPIリプレイス活動に携わっています。
その際にエンドポイントにIDを使用するかどうかやレスポンスにIDフィールドを含めるか含めないかといったID問題があったので、考えたこと・調べたことをまとめたいと思います。

# 結論
**エンドポイントやレスポンスにIDを使用しないほうが良い。**

# 理由
Railsにおいて、IDカラムは基本的にDBでAuto Incrementされて発行された連番のサロゲートキーに当たります。
そのため、サロゲートキーであるIDカラムが露出してしまうことで以下のような問題が発生します。

### IDの値の大小によって、サービス規模が推測出来てしまう。
例えば、`Get /api/users/:id`といったIDに紐づくユーザ情報を取得するAPIが存在した場合、ユーザは`:id`に好きな値を入れることができます。
そのため`Get /api/users/1

元記事を表示

【Ruby】電話番号をハイフンなしの半角数字に成形する方法

## 環境
Rails 6.0.1
Ruby 2.6.3
PostgreSQL 11.16

## ハイフンなしの半角数字に成形する方法

“`ruby
phone_number = ‘090ー1234ー5678’
phone_number.tr(‘0-9’, ‘0-9’).gsub(/[^0-9]+/, ”)

# => “09012345678”
“`

“`tr“`で全角数字だったら半角数字に成形。
“`gsub“`でハイフンなどの“`integer“`以外の文字列が入っていたとき削除(空文字に変換)。

## 成形するメソッド

下記記事の内容を組み合わせて、電話番号をきれいに成形するメソッドにしてもいいかも。

“`ruby
def format!(phone_number)
return nil if phone_number.blank?
return phone_number if phone_number.match?(/\A[0-9]+\z/)

phone_number.tr(‘0-9’, ‘0-9’).gsub(/[^0-9]+/

元記事を表示

【Rails】ActiveStorageで、保存する前に画像を縮小する方法

大阪でRailsを中心に学習しているヨマ(@yoma_2003)です!
「ActiveStorageで、保存する前に画像を縮小する方法」をまとめます。

※おことわり※
断定口調でまとめますが、初学者であるため間違い等あればご指摘頂けると嬉しいです。

# はじめに

### やりたいこと
**ActieStorageでAmazon S3等に画像を保存する場合に、指定のサイズ以下に画像を縮小してから保存したい。**

### 必要環境
画像処理のためのツール、Gemの導入。

– ImageMagick:画像加工ツール(本番環境ではサーバーにもインストールする)
– Minimagick:ImageMagickをRubyから使えるようにするGem
– ImageProcessing:画像サイズを調整するGem

https://qiita.com/TerToEer_sho/items/7f8f42503e3100c652d5

# 結論
コントローラーに渡されたパラメーター内の画像ファイル(`ActionDispatch::Http::UploadedFile`の`tempfile`)

元記事を表示

【入門】Rails APIのテスト手法まとめ

## はじめに

自分は2021年に新卒でWeb系の開発会社にフロントエンジニアとして入社し2022年で2年目になります。

実務ではReact×TypeScriptを利用したフロント周りの開発やRailsを用いたAPIの開発を行なっています。

今回は実務でRailsプロジェクトにテストを導入することになり「RSpec」について改めて学び直したのでその内容を紹介します。

はじめにRSpecの概要を説明し、その上でRails APIのCRUDの具体的なテストコードを書いていきます。

## この記事の対象者

– Railsのテストを学びたい人
– Rails APIでのテストの書き方を知りたい人
– RSpecに入門したい人

## この記事でやらないこと

– 環境構築
– RSpecに関しての詳しい解説

なお本記事は、下記の記事の続きとなっています。

https://qiita.com/KNR109/items/d7adfd7cc068c2456670

そのためDocker上でRailsのAPIモードの環境構築をしていない人は準備した上こちらの記事に進んでいただければと思

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのプログラミング言語の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのプログラミング言語の比較です。

# 2022年版

## 人気の比較記事

https://qiita.com/yuki_kimoto/items/192d162c73b584fc72b9

## 基本文法

https://qiita.com/yuki_kimoto/items/a11a1095fc24be590fce

## 入門

https://qiita.com/yuki_kimoto/items/00aaab90f31194a5de74

## インストール

https://qiita.com/yuki_kimoto/items/7c2f1be70d68065338a4

## 変数

https://qiita.com/yuki_kimoto/items/631537a6e7eb58f251cf

## 文字列処

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの多次元データ構造の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの多次元データ構造の比較

# Python

https://qiita.com/ko0821/items/4c8a557ec88f2a10bd55

# Ruby

https://qiita.com/vzvu3k6k/items/1705c7f4b29c08787ea0

# PHP

https://qiita.com/shuntaro_tamura/items/784cfd61f355516dfff0

# Java

https://qiita.com/panda-chibi/items/e57799c047be69fe5b79

# JavaScript

https://qiita.com/Stack_up_Rising/items/cb71842d7c3510daf9f0

# Perl

https://per

元記事を表示

【Rails】.env に定義した環境変数が反映されないときの解決方法

## はじめに
今回は、`dotenv-rails`を使って環境変数を管理していて、
`.env `に環境変数を定義して、コンソールで試したけど反映されないときに試すことを書きました。

`dotenv-rails`の設定などは以下の記事が参考になるかと思います!

https://pikawaka.com/rails/dotenv-rails

## 結論
・`spring`を再起動する
・`docker-compose`を使用している場合は、`docker-compose.yml` ファイルにも定義しているか確認する

## `spring`を再起動する
[Railsで環境変数の変更が反映されないときはspring stopを試す](https://qiita.com/metafalse/items/7294afa3d1be3315e999)
↑の記事を参考にさせていただき、試してみてください。

## `docker-compose.yml` ファイルにも定義しているか確認する
`docker-compose`を使用している場合は、
`docker-compose.yml` フ

元記事を表示

【Ruby on rails】Dockerを用いてRuby on railsの環境構築をする

![スクリーンショット 2022-08-30 16.34.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737303/221a9676-b273-3166-a843-6001d50e58b5.png)
Dockerを使ったRuby on railsの環境構築をしました。なかなか苦労したので、備忘録的にまとめます。
# ①超基礎
そもそもDockerが何か全く知らなかったので、とりあえずYoutubeで動画を見ました。本当のさわりだけ、という感じですが掴みにはいいと思います。
* [【Docker超入門 #1】Dockerって何?何が良いの?](https://www.youtube.com/watch?v=DNnW4I43wyU)
* [【入門者も理解】Dockerとはなにか?【専門用語少なめ】](https://www.youtube.com/watch?v=dsWCjj8M4es)

ちなみに1本目の動画を出している山浦さんは、Dockerに限らず分かりやすい動画を色々とアップされているので

元記事を表示

OTHERカテゴリの最新記事