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

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

Railsの基礎を使って、メッセージ投稿アプリを作ってみた 【第4章】(7.Bootstrapでスタイルをつける)

## 概要
前回の記事で作成したアプリの続きです。
[Railsの基礎を使って、メッセージ投稿アプリを作ってみた 【第3
章】 (6.エラーの処理)](https://qiita.com/web_fumiya/items/9c5dec049e6fa754fddb)

今回が最終章となります。
Bootstrap FontAwesome を導入し、簡単に見た目の良いサイトに仕上げていきます。

## 開発環境
– Ruby 2.7.3
– Rails 6.1.6.1
– Postgresql

## 開発手順
1.アプリの作成 (第1章)
2.CRUD処理で簡単なメッセージ投稿アプリを実装 (第1章)
3.リファクタリング (第2章)
4.フラッシュの実装 (第2章)
5.バリデーションの設定 (第2章)
6.エラーの処理 (第3章)
7.Bootstrapでスタイルをつける (第4章)

## Boots

元記事を表示

FizzBuzz問題を解いた備忘録

今日も学んだことを忘れない為にメモします。

## FizzBuzz問題とは
英語圏の有名な言葉遊びである “Fizz Buzz” (フィズバズ)のルールをコンピュータプログラムに実装したもの。
ルールは、1から順に数を数え上げていき、3の倍数なら「Fizz」、5の倍数なら「Buzz」、両方の倍数(15の倍数)なら「Fizz Buzz」、いずれでもなければその数を言う。
“`
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
“`
与えられている仕様を整理すると以下のようになる。

・数字の1~100を出力する
・値が3の倍数のときだけ、”Fizz”という出力に置き換える
・値が5の倍数のときだけ、”Buzz”という出力に置き換える
・値が3と5の倍数のときだけ、”FizzBuzz”という出力に置き換える

## 記述内容
“`
def fizz_buzz
num = 1
while num <= 100 do if num % 15 == 0 puts "FizzBuzz" elsif num % 3 == 0

元記事を表示

“rails g”コマンドを叩いたらターミナルが固まってしまった時の対処法

はじめに

DBテーブルを追加する必要があり、”rails g model”コマンドを叩いたところ、ファイルが作成されずうんともすんとも言わなくなり固まってしまいました。

“ctrl + c”で終了したところ、下記のようにエラー文っぽいものが見当たらない文章が出力されて焦ったので、同じ場面の時に焦らないように備忘録にまとめようと思います。

~~~
~# bundle exec rails generate model ~
※↑ここで固まりうんともすんとも言わなくなる

※↓”ctrl + c”で下記が出力された(エラーっぽい単語が見えなくて焦りました。)
^C/usr/local/bundle/gems/spring-4.0.0/lib/spring/client/run.rb:117:in `gets’: Interrupt
from /usr/local/bundle/gems/spring-4.0.0/lib/spring/client/run.rb:117:in `verify_server_version’
from /usr/local/bundle/gems/

元記事を表示

Railsバージョンの問題解決

こんにちは!!

今回は**Rails6**のバージョンで開発を進めたいのに
**Rails7**のバージョンでしか開発ができない人に向けての記事になります!!!

**①ターミナルに以下のコードを入力**

“`ruby:ターミナル
gem install -v 6.1.5 rails
“`

**②バージョン6が入っているか確認**
“`ruby:ターミナル
rails -v
“`

以下のように表示されれば良き!!
*rails 6~のようになっていればなんでもいいよ!!
“`ruby:ターミナル
Rails 6.1.7
“`

**③アプリの作成**
“`ruby:ターミナル
rails _6.1.5_ new app_name
“`

以上になります!
開発頑張っていきましょう!!

元記事を表示

Xcode(CommandLineTools)14系を使っているとRubyがインストールできない問題

こんにちはRUNTEQで開発TA(エンジニア & 講師の補佐)をしているふぁらおです
最新版のXcode(についてくるCommandLineTools)の14系を使っているとrbenv経由でrubyがインストール出来ないという問題が発生しているみたいなので対処法を書いていきます

## 実行結果
“`
❯❯❯rbenv install 2.6.3 +[21_admin_login]
Downloading openssl-1.1.1q.tar.gz…
-> https://dqw8nmjcqpjn7.cloudfront.net/d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca
Installing openssl-1.1.1q…
patching file test/v3ext.c
Installed openssl-1.1.1q to /U

元記事を表示

if分を極力シンプルに記述する

指定された複数の引数をそれぞれの条件で四則計算するプログラムを記述した時に省力できる記述が多かったので可読性を上げることの意識を忘れない為にメモします。

## プログラム内容
・メソッドの実引数として「1以上の正の整数」を3つ用意し、それぞれを仮引数a,b,c としてnumメソッド内で使用する
・第一引数と第二引数は足し算をし、変数abに代入する
・第三引数が3以下の場合は変数abを第三引数の値で割り、結果を出力する
・第三引数が4以上の場合は変数abを第三引数の値で掛け、結果を出力する

## 記述内容
“`
def num(a, b, c)
ab = a + b
if c <= 3 answer = ab / c puts answer else c >= 4
answer = ab * c
puts answer
end
end

num(1,5,3)
num(1,5,5)

# 出力結果
#=> 2
#=> 30
“`

## 見やすい書き方
“`
def num(a, b, c)
ab = a + b
if c

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの日付・時刻の比較

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

Python,Ruby,PHP,Java,JavaScript,Perlの日付・時刻の比較

# Python

https://qiita.com/papi_tokei/items/43b1d15a6694f576486c

# Ruby

https://qiita.com/prgseek/items/c0fc2ffc8e1736348486

# PHP

https://qiita.com/aminevsky/items/a222845ddbdd2536da56

# Java

https://qiita.com/suema0331/items/35da67426ffea0fb4435

# JavaScript

https://qiita.com/mzmz__02/items/e316d3962e7d3ecfebf8

# Perl

https://perlzemi.com/blog/

元記事を表示

【Ruby】用語学習

# はじめに
Ruby学習中に重要だと感じた用語や躓いた用語、忘れやすい用語をまとめていきます。

#### 目次
– GUI
– CLI/CUI
– touchコマンド
– Rubyの変数定義
– データ型(Array, Hash)

# GUI
グラフィカル ユーザ インターフェースの略
(Graphical User Interface)
– ユーザが視覚的にとらえて操作できるもの
→ マウスやタッチスクリーンなどで操作できる画面

# CLI/CUI
コマンド ライン インターフェースの略(Command Line Interface)
キャラクタ ユーザ インターフェースの略(Character User Interface)

– CLIとCUIはどちらも同じ意味で使われる
– すべてのやり取りを文字で行う(Windowsのコマンドプロンプトなど)
→ キーボードで操作する画面

# touch コマンド
`$ touch ファイル名`
– Linuxコマンド
– ファイルのタイムスタンプを変更するコマンド
– 存在しないファイル名を指定すると、ファイルの新規作成ができる

元記事を表示

【Ruby】用語学習

# はじめに
Rubyの学習中に重要だと感じた用語をまとめるため本記事を書きます。

### 目次
– オブジェクト指向
– Ruby
– Ruby on Rails
– クラスとインスタンス

## オブジェクト指向
– プログラミングをモノとしてとらえて、モノを組み立てていくことで成り立たせる考え方のこと
– このモノを組み立てる際の設計図を「クラス」という
– また、「設計図から作成された実態物」を「インスタンス」という

#### 補足
– 開発効率を効率化するという考え
– すべてを一から作ると時間がかかるため、あらかじめ型を作り効率よく開発するというもの
– オブジェクト指向の言語のひとつに**Ruby**がある

## Ruby
– 日本発祥のプログラミング言語
– 日本発祥のため日本語の情報も多く初心者も学習しやすい言語
– 自由度の高い言語(後付けでクラスの定義を変更できる)
– Javaなど他の言語に比べ「書きやすい」「読みやすい」といった特徴がある

#### 補足
– Webアプリの開発に向いており、スマホアプリの開発には向かない
(スマホアプリの開発はJava

元記事を表示

[Ruby]ハッシュ_値の再代入

# ハッシュの値の変更について
作成したハッシュにキーを指定することによって、値を再代入することができます

# 使い方
“`ruby
ハッシュオブジェクト[キー] = オブジェクト
“`
## 例えば・・・
“`
hash = {“Mike” => 26, “John” => 50}
hash[“Mike”] = 27
“`
上記によって、特定のキー”Mike”の値を26から27に再代入することができました。

# 特定のキーの値を取得するには・・・
“`ruby
hash.values[0]
# 27
“`
添字を指定することによって取得できます

元記事を表示

RailsエンジニアがRustでWebアプリを作るまで(1日目)

## 概要と注意
– 本記事は、完全未学習の状態からRustでAPIを書くまでの学習過程です。
– 筆者が普段主務で使っているのがRuby(Rails)のため、Railsに例えた比喩が度々出ます。
– Rustに関しての正確な説明はしていません。それどころか、間違った説明が度々出ます。あくまで学習の記録として読んでください。(訂正のコメントは大歓迎であります。)
– 習得したら、全ての過程を1つの記事にまとめます

## 1日目 (学習時間: 1h)

### Rustをinstallするよ!
兎にも角にもまずは環境を作らねばということで、Rustのinstall方法を検索
ありがたいことに[公式の日本語ドキュメント](https://www.rust-lang.org/ja/tools/install)があったので、書いている通りにinstall

“` sh
curl –proto ‘=https’ –tlsv1.2 -sSf https://sh.rustup.rs | sh
# 使っているshellでPATHを通す
“`
ふむ、はいったようだ
“`
> rustup

元記事を表示

【ActiveModelSerializer】undefined method `read_attribute_for_serialization’

## 環境
Rails 6.0.1
Ruby 2.6.3
PostgreSQL 11.16

## 状況

serializerを指定するところで下記のエラーが発生。

“`
NoMethodError:
undefined method `read_attribute_for_serialization’ for #
“`

“`ruby
def show
posts = …
render json: posts,
serializer: HogePostSerializer
end
“`

## 解決法
“`serializer“`ではなく“`each_serializer“`に変更する。
大体の場合“`each_serializer“`は“`index“`アクションで使うイメージがあったし、ドキュメントにもそう書いてあった
>To specify which serializer to use on ind

元記事を表示

【Ruby】ひらがな/カタカナ変換や全角/半角変換や漢字にマッチする正規表現などなど

# 目次
1. [概要](#概要)
2. [参考文献](#参考文献)
3. [使用した正規表現](#使用した正規表現)
4. [作ったメソッド達](#作ったメソッド達)
– [全角半角変換](#全角半角変換)
– [ひらがなカタカナ変換](#ひらがなカタカナ変換)
– [記号の削除](#記号の削除)
5. [破壊的メソッドにしたい時!](#破壊的メソッドにしたい時)
6. [Railsにおける便利な文字列操作のおすすめ記事](#Railsにおける便利な文字列操作のおすすめ記事)

# 概要
日本語の表記揺れなどに対応する必要があり、Stringクラスに定義する形で色々作ったのでメモしておきます。

# 参考文献
– https://easyramble.com/japanese-regex-with-ruby-oniguruma.html
– https://docs.ruby-lang.org/ja/latest/class/String.html#I_TR
– https://docs.ruby-lang.org/ja/latest/class/NKF.ht

元記事を表示

【Ruby】ダックタイピングとは

## 環境
Rails 6.0.1
Ruby 2.6.3
PostgreSQL 11.16

## ダックタイピングとは
特定のクラスと結びつかない、クラスを跨ぐパブリックインターフェースを取り決め実装する作法。
下記の例は“`bark“`メソッドがダックタイプされていると言える。
もっと複雑な実装になってくると“`bark“`メソッドをmoduleにまとめて共通化する方が良さそう。

“`ruby
class Cat
def bark
puts ‘ニャーニャー’
end
end

class Dog
def bark
puts ‘ワンワン’
end
end

mike = Cat.new
poti = Dog.new

mike.bark
#=> ‘ニャーニャー’
poti.bark
#=> ‘ワンワン’
“`

### 継承よりもダックタイピングを積極的に使うこと
ダックタイピングを知ったとき継承とどう使い分けるのか気になった。
継承が設計上必要でなければ、ダックタイピングで楽しようとのこと。

“`ruby
class Animal

元記事を表示

sliceメソッドを使ったプログラムの備忘録

今日も学んだことを忘れないためにメモします。

## sliceメソッドとは
配列や文字列から指定した要素を取り出すことができるメソッド。
“`
array = [0,1,2,3,4,5,6]
puts array
#=> [0,1,2,3,4,5,6]

# 配列から引数で指定した要素を取得
ele1 = array.slice(1)
puts ele1
#=> 1

# 配列番号-4から4つ分の要素を取得
ele2 = array.slice(-4,4)
puts ele2
#=> 3, 4, 5, 6
“`

文字列だけでなく、配列、ハッシュからも取り出せる(ハッシュの場合はActiveSupportという外部ライブラリーを使う)

“`
# 配列からslice
array = [“Ruby”,”Python”,”Java”]
puts array.slice(0)

# 出力結果
#=> Ruby

# ハッシュからslice
require ‘active_support’
hash = {“Ruby”:”Rails”,”Python”:”Django”,”PHP”

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの文字コードの比較

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

Python,Ruby,PHP,Java,JavaScript,Perlの文字コードの比較

# Python

https://qiita.com/ny7760/items/d9c247781a790210936d

# Ruby

https://qiita.com/ima1zumi/items/28ef13f5af3d9afdeaf3

# PHP

https://qiita.com/suin/items/3edfb9cb15e26bffba11

# Java

https://qiita.com/motoki1990/items/cee6a4a75c0320b79ec4

# JavaScript

https://qiita.com/weal/items/3b3ddfb8157047119554

# Perl

https://perlzemi.com/blog/201610061475

元記事を表示

本番環境でFailed to upgrade to WebSocketエラー

### 状況
ローカルでは投稿に対してのコメントができる(ajax)のに、本番環境ではできていなかった。

### 原因
本番環境でactioncableが使えない状況だった

### 解決方法
“`ruby:EC2内
$ sudo vim /etc/nginx/conf.d/rails.conf
“`
以下を貼り付ける。
“`ruby:/etc/nginx/conf.d/rails.conf
upstream app_server {
server unix:/var/www/アプリケーション名/shared/tmp/sockets/unicorn.sock;
}

server {
#省略
# ——————-ここから——————-
# /cableのパスに対してwebsocketの仕組みを用いるための設定
location /cable {
proxy_pass http://app_server/cable;
proxy_http_version 1.1;
proxy_set_header

元記事を表示

【Rails基本編】美少女と学んだ気になれる講座

この講座は、Web業界未経験の**吉野 桜**と、その先輩である**堀切 あやめ**のかわいさをお楽しみいただくため、邪魔にならない程度の差し障りのないWeb技術の話を、お楽しみいただく番組です

## キャラクター

![20220920_resize.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208060/de425bd4-b556-4140-4e9f-52c22fdcd657.png)
吉野 桜: Web業界未経験

![20200920_resize.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208060/8e061b61-cc55-072c-118d-f5f86c2b61ed.png)
堀切 あやめ: Web業界三年目

## 本編

桜「うちのバックエンドってRuby on Railsですよね?」
あやめ「うん、そうだね」
桜「桜、実はRuby on Railsからっきしで……」
あやめ「そうな

元記事を表示

【入門】Ruby eachメソッドの様々な使い方を具体的に紹介

# はじめに
今回は、Rubyに標準で組み込まれている`eachメソッド`について、備忘録としてまとめます。

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

# この記事の目的
Rubyに標準で組み込まれている`eachメソッド`についてアウトプット

# この記事の内容
1. each_with_index
2. each.with_index
3. eachの入れ子
4. each_slice
5. each_key
6. each_value

# 1. each_with_index
eachメソッドと同様に、要素の繰り返し処理を行いつつ、その要素が何番目に処理されたものなのか表示するメソッドです。
eachでループを回しつつ、それぞれのデータ(要素)に番号を振りたい時などに使います。

– 書き方
“`ruby
配列名.each_with_index do |item, index|

end
“`
– 基本的な書き方
“`ruby
#書き方①
foods = [“あんぱん”, “メロンパン

元記事を表示

getsメソッドを利用したプログラムの備忘録

今日も学んだことを忘れないてためにメモします。

## getsメソッドの種類
getsメソッドが実行されるとターミナルがコマンド入力待ちの状態に変わりユーザーがエンターキーを押すまで文字を入力できる。
送られてきた文字列オブジェクトの後には改行が入る。
gets.chompとすることで改行が入らない。
getsとgets.chompは「数字」を入力しても「文字列」の扱いにしてしまう。
gets.to_iとすることで「数字」として扱える

## プログラム内容
getsメソッドを利用しての位と一の位の数字の足し算、十の位と一の位の数字の掛け算をそれぞれ行い、最後に2つの結果を足し合わせて出力するプログラムになります。
“`
> 二桁の整数を入力してください
> 15

# 1 + 5 と 1 × 5 をそれぞれ計算

> 足し算結果と掛け算結果の合計値は11です
“`

10の位は整数を10で割ったものを更に10で割った計算結果、
1の位は整数を10で割った計算結果の余りで求められる。

Rubyの性質上、整数同士(integer型)の計算だと返り値は整数になるので、小数点以下

元記事を表示

OTHERカテゴリの最新記事