ruby サンプル集
rubyを使ったサンプルコードを掲載してます。基本的には、ソースをまるまるコピーアンドペーストすれば使用できると思います。
環境構築
rubyの環境構築です。
- windows10 rubyをインストールして実行する
- windows10 Pikを使ってRubyのバージョンを管理する
- windows11 scoopを使ってrubyをインストールする
- Mac Ruby On Railsをインストールしてサーバーを起動
- CentOS9 rubyをインストールする
- CentOs8にRubyをインストール
- CentOs7 Rubyをインストールする手順
- Ubuntu19.10 RubyとRailsをインストールしてサーバーを起動する
- Rocky Linux rubyのインストール
- MIRACLE LINUX 最新バージョンのrubyをインストールする
- AlmaLinux rubyをインストールするまでの手順
- Manjaro Rubyをインストールする
- dockerでrails6とpostgresql環境を構築する
- vscode Ruby formatterが使えない
- VSCODE rubyで自動的にendを挿入する
基本
rubyの基礎的な内容をまとめてます。
サンプル集
文字列操作
文字列の作成方法や操作方法に関するサンプルコードとなります。
- 文字列から指定した文字を削除する
- 分割された文字列を結合する
- 文字列を1文字ずつに分割する
- 文字列をインクリメントする
- 文字列の前後にある半角空白を除去する
- 文字列がASCII文字だけであるかを判定する
- 文字のUnicodeコードポイントを取得する
- 文字を指定した文字に置換する
- 文字列を指定した文字で分割する
- 文字列から指定した範囲の文字を取得する
- 文字列を数値に変換する
- 文字列の後方から指定した文字列を削除する
- 空文字であるかを判定する
- 文字列の右側にある半角空白を除去する
- 文字列の左側にある半角空白を除去する
- 文字列の中で数式を利用する
- 文字列のバイト長を取得する
- 改行区切り単位で文字列を配列に変更する
- 乱数を生成する
- ASCIIコードを文字列に変換する
- 末尾にある改行を取り除く
- 16進数表記の文字列を数値に変換する
- カタカナをローマ字に変換する
- 文字列を初期化する
- 文字列を1文字で区切りインデックス番号とともに二次元配列化する
数値操作
数値の作成方法や操作方法に関するサンプルコードとなります。
- 小数点が含まれている文字列を数値に変換する
- 切り捨てを行う
- 偶数・奇数を判定する
- 数値のインクリメントを行う
- randで乱数を発生させる
- 数値を文字列に変換する
- 割り算の余りを求める
- n乗を計算する
- アンダーバーを使用して数値を区切る
- 素数であるかを判定する
- 平方根を求める
- 立方根を求める
- 円周率を取得する
- 三角関数を計算する
- 10進数を2進数に変換する
- 誤差関数を取得する
- 自然対数の底e(ネイピア数)の累乗を計算する
配列操作
配列操作に関するサンプルコードとなります。
- 配列の値を削除する
- 指定した位置の配列の値を取得する
- 配列の要素数をカウントする
- 配列から重複した値を除去する
- 配列からnilを削除する
- 配列をランダムに並び替える
- 配列の先頭からを条件を満たすものを取得する
- 配列を条件により満たすものと満たさないものに分割する
- 配列をコピーする
- 配列を降順にソートする
- 配列の最大値と最小値を求める
- 配列の値を指定した値に全て変更する
- 条件を指定して、配列の最大値と最小値を求める
- 配列内の最小値と最大値の両方のインデックス番号を取得する
- 配列の中で最大値のインデックス番号を求める
- eachを使用して、配列内の値を総和を求める
- 配列を並び替え(ソート)をする
- 配列をアルファベットの大文字・小文字を関係なく並び替える
- 配列の先頭から指定した数の値を削除する
- 配列内で指定した値が最初に見つかった位置を取得する
- 指定した条件が続く限り配列の先頭から値を削除する
- 条件を指定して配列の値を削除する
- 配列内の値を偶数・奇数に分ける
- 指定した配列の値を削除する
- 配列がユニークであるかを判定する
- 別の配列同士を1つにまとめる
- 全てが同じ値の多次元配列を作成する
- 配列の指定した数の組み合わせを取得する
- 配列の値を配列内で繰り返し利用する
- 配列から指定した数だけ配列を抽出する
- 配列内の各値を演算する
- 配列の値をランダムに1つ抽出する
- 配列の最後に要素を追加する
- 配列を正規表現により値を抽出する
- 配列同士を結合させる
- 配列同士の差分を取得する
- 配列内の値を総和を求める
- 配列の値を逆順にする
- 配列の行と列を入れ替える
- 配列のハッシュから指定したkeyの値のみを抽出する
- 二次元配列の値を回転や反転させる
- 配列内で指定した値が最後に見つかった位置を取得する
- 配列がソートされているかを判定する
- 配列の値を順番に変数に代入する
- 演算子を指定して配列の値全てを計算する
- 配列を値とインデックス番号で二次元配列にする
- 配列を後ろから指定した単位で分割する
- 配列内で条件が一致した値が最初に見つかった位置と値を取得する
- 配列をEnumeratorとして返す
- 配列内にある要素を要素別にカウントする
- 配列内にある要素それぞれに条件を指定して結果をカウントする
- 配列作成時のちょっとしたショートハンド
ハッシュ操作
ハッシュ操作に関するサンプルコードとなります。
- ハッシュを生成する
- ハッシュ同士を結合する
- ハッシュのキーと値を取得する
- ハッシュにmapを使用してハッシュ化する
- ハッシュを初期化する
- ハッシュのキーや値の存在確認を行う
- ハッシュのキーを条件を指定して削除する
- ハッシュの値を削除する
- ハッシュが空であるかを判定する
- ハッシュの長さを取得する
- ハッシュのキーを複数指定して値を取得する
- 同じキーを持つハッシュ同士を演算する
- 二次元ハッシュの各値を取得する
- 二次元ハッシュの初期化を行う
その他
- 実行ファイルのexe化
- 多重代入を行う
- ファイルを1行ずつ読み込む
- ファイルから指定した文字列のある行のみを取得する
- フォルダ内のファイルを全て表示する
- タイムエポック(Windows時間)を年月日月時に変換する
- eachの使い方
- yieldの簡単な使い方
- シンボルの簡単な使い方
- モジュールの簡単な使い方
- クラスの簡単な使い方
- クラス内で定数を使用する
- メソッドを定義する
- メソッドを1行を記述する
- クラスメソッドでコンストラクタを実行する
- インスタンス変数とクラス変数の簡単な使い方
- 例外処理の簡単な使い方
- APIデータを取得する
- webAPIにパラメーターをつけてgetする
- webAPIにbodyをつけてpostする
- webAPIにbearerを使用してgetする
- jsonデータをeachを使用して確認する
- stepで指定した値まで間隔を指定して繰り返し処理を実行する
- Mecabを使用して形態素解析を行う
- primeで任意の値までにある素数を取得する
- each実行時にインデックス番号を「1」から取得する
- encodingで文字列の文字コードを確認する
- timeクラスを使用して日時や曜日を取得する
- putsとprintとpの出力の違い
- uptoとdowntoで指定した値まで繰り返し処理を実行する
- unixtimeを年月日月時に変換する
- active directoryにldap接続を行う
- LDAPのデータなしの属性のデータを全て取得する
- ファイルの先頭に特定文字列が含まれているものだけ抽出する
- 1個の変数に複数ある「or」をまとめて記述する
- mongoDBに接続する
- mongoDBに接続してDBの状態を確認する
- redisに接続して画像をキーに保存する
- redisに接続してキーの値を取得する
- redisに接続してキーをsetする
パフォーマンス
同じ結果が得られる処理のパフォーマンスを比較した結果を掲載してます。
- 複数の変数に代入する3つの方法のそれぞれのパフォーマンスを計測する
- 配列の総和を求める場合のパフォーマンスを計測する
- 割り算の余りを求める「modulo」と「%」演算子のパフォーマンスを計測する
- delete_ifとinjectのパフォーマンスを計測する
- 0~9までの乱数を発生させる「rand」と「random.rand」のパフォーマンスを計測する
- key?とhas_key?、include?、member?のパフォーマンスを計測する
- 「三項演算子」と「if文」のパフォーマンスを計測する
- 配列からnilを削除できる「compact」と「delete_if」と「reject」のパフォーマンスを計測する
- 条件を指定して配列の最大値を求める「max」と「max_by」のパフォーマンスを計測する
- 配列のASCIIコードを文字列に変換する「pack」と「map」のパフォーマンスを計測する
- 正数をインクリメントする「+=」と「next」と「succ」のパフォーマンスを計測する
- ファイルの読み込む「each」と「foreach」のパフォーマンスを計測する
- 配列から指定した数だけ配列を取得する処理で「take」と「first」と「ドット」のパフォーマンスを計測する
- 文字列をインクリメントする「next」と「succ」のパフォーマンスを計測する
- 文字列を連結する「+」と「<<」と「concat」と「join」のパフォーマンスを計測する
- 「def」と「アロー演算子」のパフォーマンスを計測する
- フォルダ内にあるものを取得できる「foreach」と「each_child」と「open」と「glob」のパフォーマンスを計測する
- 「delete」と「sub」と「gsub」と「slice」のパフォーマンスを計測する
外部ライブラリ
rails
rubyのWebアプリケーションフレームワークである「rails」のサンプルコードを掲載してます。
- windows10 rails6でmysqlを使用するまでの手順
- Rails ベーシック認証を設定する手順
- rails6 nginx + pumaを使用する
- rails6 pumaを自動起動に設定する
- rails6 DBテーブルを作成する
- rails6 既存のテーブルをmodelとして使用する
- rails6 部分共通テンプレートを作成する
- rails6 画像のパスを指定する
- rails6 seeds.rbでテーブルにデータを作成する
- rails6 application.html.erbで読み込むCSSを指定する
- Rails renderメソッドを使用してjsonを返す
- Rails アクションから別テンプレートを表示させる
- rails6 post時にjavascriptを実行する
- rails6 form_withを使ってpostする
- Rails Controllerを作成してアクションを実行するまでの手順
- rails6 Controllerで使用する共通処理を作成する
- rails6 controllerからviewに変数を渡す
- rails6 Controllerでデバックする
- rails6 view内で配列の値ごとに改行する
- rails6 viewからcontrollerにget方式とpost方式でデータを渡す
- rails6 htmlタグをタグとして出力する
- rails6 link_toをtarget_blankで開く
- rails6 migrateのstatusをdownからupに変更する
- rails6 画面遷移時にhtmlが表示されない
- rails6 scaffoldで作成されたものを削除する
- Rails rootに表示するページを設定する手順
- Rails データベースの値をjsonで出力する
- rails6 foremanを導入する
- rails6 refileを使用して画像をアップロードする
- rails6 作成したmodelを削除する
- rails6 application.html.erbを使用しない
- rails6 バリデーションを設定する
- rails6 バリデーション重複チェックを大文字・小文字を区別せずにチェックする
- rails6 envファイルを使用する
- rails6 ファイルを指定したディレクトリにアップする
- rails6 EXCELファイルを作成する
- rails6 EXCELファイルを読み込む
- rails6 EXCELシートを指定して読み込む
- rails6 EXCELファイルの内容をフロントに表示する
- rails6 EXCEL最終行まで読み込む
- rails6 PDFをそのまま表示する
- rails6 曜日を日本語で取得する
- rails6 vue.jsでaxiosを利用する
- rails6 APIを実装する
- rails6 APIデータを取得して表示する
- rails6 APIから取得したデータでseedを実行する
- rails6 if文の1つ変数にある「or」句を配列にまとめる
- rails6 form_withを使用しても「data-remote=”true”」にならない
- rails6 LDAPで取得したデータを表示する
- rails6 Fakerを使ってダミーデータを作成する
- rails6 Postgresqlを使用するまでの手順
- rails6 pluralizeを使って英語を複数形に変更する
- rails6 プライベートIPを表示する
- rails6 同一ネットワークのプライベートIPでrails serverにアクセスする手順
- rails6 別ファイルを作成してseedを実行する
- rails6 接続先のIPを取得して表示する
- rails6 ajaxを実装する
- rails6 webpackerでCSSを使う
- rails6 webpackerでmaterial-iconsを使う
- rails6 ログローテーションを設定する
- rails6 パラメーターで表示する言語を切り替える
- rails6 エラーメッセージを日本語化する
- rails6 DBの設定情報を確認する
- rails6 redisを使用する
- rails6 外部のredisに接続する
- rails6 redisにセッションを保存する
- rails6 deviseを使用する
- Rails6 bootstrapとjQueryを使用する手順
- railsでTailwind CSSを使用するまでの手順
- railsでFont Awesomeを使用するまでの手順
- Rails6 Conciseを使用する手順
- Rails6 blumaを使用する手順
- Rails6 cssフレームワーク「Mini.css」を使用する手順
- Rails6 Foundationを使用する手順
- Rails6 Material Design for Bootstrapを使用する手順
- Rails6 cssフレームワーク「Base」を使用する手順
- Rails6 cssフレームワーク「Cardinal」を使用する手順
- Rails6 Uikitを使用する手順
- Rails6 Materializeを使用する手順
- Rails6 milligramを使用する手順
- rails6 vue.jsのUIライブラリ「vuetify」を利用する
- Rails6 cssフレームワークsemantic-uiを使用する手順
- rails6 ダッシュボードテンプレート「Cleopatra」を適応させる
- railsのアップデートを行う
エラー対処法
エラーが発生する原因と解決方法を記載してます
- エラー「syntax error, unexpected local variable or method, expecting end-of-input」の原因と解決法
- 「rbenv: ruby: command not found」が発生した場合の対処法
- rbenv install時に「ruby-build: TMPDIR=/xxx is set to a non-accessible location」が発生
- gem エラー「Permission denied @ rb_file_s_symlink」が出たときの対処法
- rakeコマンド実行時に「Gem::LoadError: You have already activated rake xx.xx.xx, but your Gemfile requires rake xx.xx.xx. Prepending bundle exec to your command may solve this」が発生した場合の対処法
- bunderインストール時にエラー「ERROR: Could not find a valid gem ‘bunder’ (>= 0) in any repository」が発生した場合の対処法
- Ruby railsインストール時にエラー「Error installing rails: nokogiri requires Ruby version >= 2.3, < 2.7.dev. The current ruby version is 2.7.0.0.」によって失敗する場合の対処法
- Rails mysql使用時エラー「Authentication plugin ‘caching_sha2_password’ cannot be loaded」が発生した場合の対処法
- gem mysql2をインストール時にエラー「You’ve installed the binary version of mysql2.」が発生した場合
- rails6 scaffold使用時 deleteが機能しない
- rails elseifでエラー「NoMethodError」がでる
- Rails6 エラー「lib/sprockets/base.rb:100:in `find_all_linked_assets’」が発生した場合の対処法
- rails エラー「LoadError: cannot load such file — sqlite3/x.x/sqlite3_native」が発生した場合の対処法
- rails6 pgインストール時にエラー「An error occurred while installing pg (1.2.3)」が発生した場合
- rails6 axios利用時にエラー「TypeError: axios__WEBPACK_IMPORTED_MODULE_1__.default.get is not a function」が発生
- rails6 DB書き込み時エラー「ERROR: duplicate key value violates unique constraint」が発生した場合の対処法
- rails6 deviseインストール後に「NameError: uninitialized constant User」が発生した場合の対処法
- rails6 API post時にエラー「ActionController::InvalidAuthenticityToken」が発生
- rails エラー「Runtime Error Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8」の対処法
- rails bundle install時エラー「An error occurred while installing sqlite3 (x.x.x), and Bundler cannot continue.」の対処法
- puma+nignx エラー「sockets/puma.sock failed (13: Permission denied)」の対処法
- rails6 「ActionView::Template::Error (The asset “application.css” is not present in the asset pipeline」の対処法
- rails6 Bootsnap::CompileCache::PermissionErrorが発生した場合
- rails6 PostgreSQL接続時に「authentication requires libpq version 10 or above」が発生した場合
- rails6 activerecord-sqlserver-adapter使用時にエラー「singleton class’: undefined method alias_method_chain’ 」が発生
- rails6 tiny_tdsインストール時にエラー「An error occurred while installing tiny_tds (2.1.3), and Bundler cannot continue.」が発生
- rbenv 「-bash: rails: コマンドが見つかりません」発生時の対処法
- Rails6 エラー「Blocked host」の対処法
- rails6 エラー「activeRecord::PendingMigrationError」が発生した場合
- rails6 エラー「Encoding::CompatibilityError」が発生
- rails6 devise使用時 エラー「No route matches [GET] “/users/sign_out”」が発生した場合