Ruby関連のことを調べてみた

Ruby関連のことを調べてみた

Redux-sagaを使ってReactからRubyで作成したAPIに接続する

# やりたいこと
– Redux-sagaを使ってReactからRubyで作成したAPIに接続する
– Redux、Redux-sagaの使い方については下記記事参照
[Reac初心者でも読めば必ずわかるReactのRedux講座 | アールエフェクト](https://reffect.co.jp/react/react-redux-for-beginner/)
[redux-sagaとは何なのか? – Qiita](https://qiita.com/souhei-etou/items/2dce0a1dc8f24e9c2668)
# 前提
– ruby: 2.7 + Rails: 6
– react: 16.8.6
# ファイル構成
“`
app
├── controller
│ └── forms_controller.rb
└── javascript
├── app
│ ├── containers
│ │ └── Form.js
│ └── redux
│ ├── actions

元記事を表示

railsでjava scriptやcssを使用するには?

Railsでjava scriptやCSSファイルを使用する場合、一般的には2つの方法があるそうです。(どっちを使えばいいの?と思いますが、初学者にはまだわかりません、、、)

## 1. CDNからの読み込み
外部のライブラリやフレームワークを使用する場合、そのファイルをCDNから直接読み込むことができます。これにより、アプリケーションのレスポンスタイムが改善され、ライブラリのバージョン管理や更新が簡素化されます。
※「CDN」はContent Delivery Networkの略で、**インターネット経由でファイルを配信する仕組み**のことです。

###  例 jQueryやBootstrapを読み込む場合
“`html


  
    sample
    
    
    
   

元記事を表示

Ruby シンボルとキーについて

## Rubyにおけるシンボルとキーについての関係性について

Railsでストロングパラメータの設定を行う際に、シンボルとキーの理解が整理できていないことに気がついたので、こちらでまとめておこうと思います。

“`ruby
def site_params
params.require(:site).permit(:name, :subtitle, :description, :favicon, :og_image, main_images: [] )
end
“`
私が気になった点は、`:subtitle`と`main_images: []`の書き方の違い(:の位置)です。

`:subtitle`
単一のデータを所有するカラムの記載の仕方。

`main_images: []`
複数のデータを所有するカラムの記載の仕方。
ストロングパラメータに追加する際は、**末尾に追加**する。
そうでないと、Railsの規約に従っていないらしく、エラーが出る。

今回の話題は、この`:subtitle`、`main_images:`の部分について。

### キーの種類

元記事を表示

プロを目指す人のためのRuby入門[改訂2版]を読んで

プロを目指す人のためのRuby入門[改訂2版]を読んでの感想

## 良かったところ

### 説明が丁寧
まず、本書のイントロダクションにも書いてあったのですが、まったくプログラムを書いたことのない完全なプログミング初心者には少し難易度が高い印象でした。
ですが、サンプルコードがたくさん書かれているのでわかりやすかったです。

### 基礎から応用まで
中級者〜上級者用ではあるのですが、基礎を理解できる章からそれを使った応用の章までと網羅されていました。

### 例題とリファクタリング作業
章ごとに例題があり、動いた後にどのようにリファクタリングできるかを説明してあります。シンプルでわかりやすい構文での書き方を学べます。

## 学んだこと

プログラマの三代美徳は「怠惰・短気・傲慢」

### 基本構文について
* メソッドの戻り値の指定にreturnは使わない。returnはメソッドを途中で脱出する際に使われることが多く最後に評価された式がメソッドの戻り値になる。
* エイリアスメソッドが多くある。
* メソッド定義も式になっている。メソッド名をシンボルとして返す。

###

元記事を表示

discardで論理削除する

# はじめに
先日、業務でdiscardを使用して論理削除の実装をしました。
discardは初めて使用したのですが、とても簡単に論理削除の実装ができたため、備忘録として記事にしたいと思います。

私自身、まだまだ未熟な経験の浅いエンジニアですので、誤った解釈をしている可能性もあります。もしそういった場合がありましたら、ぜひコメントでご指摘いただければ幸いです。

# 論理削除とは

論理削除は、データベースのレコードを物理的には削除せずに、削除されたかのように扱う方法です。
レコードに「削除された」という状態を示すマークやフラグを設定することによって、レコードはデータベースに残り続けますが、アプリケーションの動作上では「存在しない」または「アクセス不可能」な状態にできます。

# discard とは

discard は、Ruby on Rails で論理削除を簡単に実装するための Gem です。
discard では、論理削除に関連するカスタムロジックを書く必要がなくなり、一貫した方法でデータを扱うことができます。

# 環境設定

### Gem のインストール

Gemfi

元記事を表示

Rails Server が正常に終了しない場合の対処法

## 事象

`Rails Server` を使用している際、通常は `Ctrl + C` を使用して終了しますが、サーバーが正常に終了しない場合があります。再度 `bin/rails s` コマンドで `Rails Server` を起動しようとすると、以下のようなエラーが発生することがあります。

“`sh
% bin/rails s
=> Booting Puma
=> Rails 7.0.4.3 application starting in development
=> Run `bin/rails server –help` for more startup options
A server is already running. Check /path/to/your/project/tmp/pids/server.pid
Exiting
“`

こちらのエラーメッセージは `Rails Server` が既に実行中であることを示しており、正常に終了していない、或いは異常終了して `プ

元記事を表示

button_to に思った通りの CSS が効かない問題の対処法

## 事象

`button_to` という `Rails` のヘルパーメソッドを使って送信ボタンを実装するときに下記のように実装すると `button_to` に思った通りの `CSS` が効きませんでした。今回はその原因と対処法を共有いたします。

“`ruby
<%= button_to '送信', 任意の_path, method: :post, params: { key: 'value' }, class: 'custom-class' %>
“`

## 原因

この問題の根本原因は `button_to` ヘルパーが生成する `HTML` 構造にあります。具体的には、指定した `class (custom-class)` が `form` 要素ではなく、内部の `input` 要素に適用されてしまうためです。`Rails` は `button_to` を使用すると、以下のような `HTML` を生成します。

“`ruby:before

元記事を表示

EOFの意味は?

なぜecs[EOF]がある?

https://allabout.co.jp/gm/gc/471930/

なぜ、「;」を採用している?

元記事を表示

RuboCop-airbnbの導入方法

## 環境構築の手順
### ①Gemの追加
“`:Gemfile
group :development, :test do

# 以下追加
gem “rubocop-airbnb”
end
“`

### ②rubocop-airbnb の設定
ルートディレクトリに以下の2ファイルを作成する
“`:.rubocop.yml
inherit_from:
– .rubocop_airbnb.yml

# Rails用に最適化
Rails:
Enabled: true

# 文字数の上限を80文字から変更
LineLength:
Max: 130

# rubocopで検証したくないフォルダを指定
AllCops:
Exclude:
– ‘db/**/*’
– ‘config/**/*’
– ‘bin/*’
– ‘**/Gemfile’
– ‘vendor/**/*’
– ‘.git/**/*’
“`
“`:.rubocop_airbnb.yml
require:
– rubocop-a

元記事を表示

【VSCode+WSLからの移行者向け】RubyMineとWSLを接続、Remote Interpreterとして使ってみる

RubyMineの設定のついでに書き残しておきます。筆者の実行環境は以下の通りです。
* [RubyMine IDE:](https://www.jetbrains.com/ruby/) Version 2023.3
* [Ruby](https://www.ruby-lang.org/ja/): 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux]
* [Rbenv](https://github.com/rbenv/rbenv): 1.2.0-87-ge8b7a27
* [WSL](https://learn.microsoft.com/ja-jp/windows/wsl/): 2.0.9.0
* [Ubuntu](https://jp.ubuntu.com/): 22.04.3 LTS

# 1. 動機
筆者は最初VSCodeでRubyを書いていたんですが、最近Rubyの一番標準的な拡張機能が非推奨化して、Shopify社製のRubyLSPを使うようにと公式から勧告がありました。しかし、その安定性の低さに発狂し学生特権を行使し

元記事を表示

マイナンバー(個人番号)の検査用数字の確認方法

マイナンバー(個人版号)は、12桁の数字で、下1桁は検査用数字です。
それは、次で定められています。
[総務省令第八十五号](https://www.soumu.go.jp/main_content/000327387.pdf)
PDF の 4,5ページです。

![p01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/063401e5-2129-c526-3174-d7673c7ee3b3.png)

![p02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/982792b6-2d3b-9149-7aa2-1a107a37f6fb.png)

## プログラム Python3

“`py:check_digit.py
#! /usr/bin/python
#
# check_digit.py
#
# Feb/23/2024
import sys
#
# ————–

元記事を表示

【メモ】BUILD FAILED (Debian 12 on x86_64 using ruby-build 20240119)の解決方法

## はじめに
AWSのLightsailを用いてRubyの学習環境を整えようと奮闘していた最中であった。
rbenvをインストールするところまでは良かったのに、いざ最新バージョンのruby3.3.0(2024/02/20現在)をインストールしようとしたら、3度もビルドに失敗したのでそれぞれのエラーに対する処置を隠すことなくここに書き留めておこうと思う。
なお、使用していたOSはDebian12だが、同系統のUbuntuでも同様な対処が可能と予想する。

ちなみにrbenvコマンドを使うと以下のようにバージョンを選択してインストールが可能。

“`:
$ rbenv install 3.3.0
“`

## 1度目のエラー
まぁ何事も初めてのエラーに対してはあいさつのようなものだと思って淡々と対処していく。
ログを見てみると、以下のようなfatal errorが見つかった。
“`:log
crypto/comp/c_zlib.c:36:11: fatal error: zlib.h: No such file or directory
“`
zlib.hというファイルが見当たら

元記事を表示

苦手な記号をタッチタイピングできるようになって幸せになろう

# 背景
最近、同僚に騙されて英語配列の高級キーボードを購入しました。打鍵は非常に気に入りましたが、記号の場所やシフトキーを利用した入力になかなかなれません。元のキーボードに戻すことも考えたのですが、高級キーボードを購入したので後ろ髪を強く引っ張られています。この機会にキーの配置を覚え直し、従来より快適にキーボードを操作できるようになろうと考えました。
# 作戦:ゲームで幸せになる
自分が苦手な記号入力のタイピングゲームをrubyで作りました。
このゲームで遊ぶと重点的に苦手な記号キーを練習することができます。
また、記号を入力するときは右手の小指が大活躍するので右手の小指専用のメニューも搭載した最先端仕様にしました。(笑)

“`ruby:typing_game.rb
# 処理開始時刻を記録
start_time = Time.now

# 記号練習用
source_string = ‘!@#$%^&*()-_=+\|~`{[]};:”<>?/1234567890′ + “‘”
# 右手小指練習用(英語配列)
# source_string = ‘)-_=+pP{[]};:”?/’

元記事を表示

【Rails】 Cloud Natural Language API 活用ハンズオン

# 概要
この記事では、GCPの `Cloud Natural Language API`を用いて、登録したタスクに対して、自動でタグ付けを行うTODOアプリの作成をハンズオン形式で行ってみようと思います。

https://cloud.google.com/natural-language

# 対象者
この章では対象者について説明します。
– Railsを用いたアプリケーションの作成経験がある方

# 動作環境
こちらの章では動作環境について明記していきます。

## ハードウェア
– **PC** : MacBook Air (M1, 2020モデル)
– **RAM** : 8GB

## ソフトウェア
– **OS** : macOS Monterey (バージョン 12.1)

## 開発環境
– **Editor** : Visual Studio Code
– **Language** : Ruby (バージョン 3.1.2)
– **FW** : Rails (バージョン 6.1.7)

# 実装
こちらの章では実装を進めていきます。

:::note warn
**

元記事を表示

自己PCにRedmineを構築

# 背景
個人的なスケジュールとか、勉強とかのタスク管理をしたかった🦝

## 今回構築した環境・バージョン
macos Sonoma 14.2
チップ Apple M1
ruby 3.1.4
Remine 5.1.1
Mysql 5.7

# 手順
## brewインストール

自分の環境ではbrewがインストールされていないようだったので、インストール

“`bash:
コマンド : brew install rbenv

実行結果:bash: brew: command not found
“`

どうやらbrewが入ってないらしい

ということで以下を実行しインストール

“`bash:
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`
再度brew -vで確認するも、、、、
それでもbrew -vでnot found になるので

“`bash:
echo export PATH=’/opt/homebrew/bin

元記事を表示

Ruby on Railsの勉強環境の作成

# メインで参考にしたサイト
[Ruby 3\.x, Rails 7\.x, PostgreSQL の Docker 環境構築 2023 \#Rails \- Qiita](https://qiita.com/goya-hideaki/items/a0b7eae988b716724fdb)

途中以下のエラーが発生
“`bash:bash
$ docker compose run frontend rails db:create
[+] Creating 1/0
✔ Container free-market-app-backend-1 Running 0.0s
FATAL: could not open file “global/pg_filenode.map”: Permission denied
Couldn’t create ‘myapp_development’ database. Please check y

元記事を表示

Rubyのoptparseについて(初学者向け)

Rubyを学習する中で、optparseを活用する機会があったため、こちらの内容について学習したことをまとめます。
私はRuby初学者でまだまだ学習中です。
optparseの公式ドキュメントを参照したのですが、前提知識が抜けているが故に難しく感じる部分もありました。

本記事では基本的な部分からoptparseについて解説したいと思います。

# optparseの概要

– optparseはRubyの標準ライブラリの一つです。
– rubyのプログラムを実行するときに、例えば`-a [引数]`など、コマンドラインのオプションの対応を行うことができます。
– コマンドラインのオプションのように、引数を渡すことができるようになります。

# (前提知識) ARGVとは?

rubyでoptparseを初めて使用するにあたって[公式ドキュメント](https://docs.ruby-lang.org/ja/latest/library/optparse.html)を参照しました。
ここで登場する「`ARGV`」という用語についてよくわかっていなかったので、まずはこの部分から解説します

元記事を表示

ActiveRecordモデル操作チートシート

## 初めに
日々の業務でよく使用するActiveRecordのモデル操作についてまとめていきます。
基本的な操作でも「あれ?書き方どうだっけかな?」となることが多いので、そういった方の早見表的な感じでお役に立てると非常に嬉しいです。

誤り・もっとイケてる書き方があれば、コメントいただけると嬉しいです。

## 取得

### 取得するデータの絞り込み
1つのカラムのみや配列で返されても問題ない場合は、 `pluck`を使用し、それ以外は `select`を使用するようにしています。
“`ruby
# select
User.select(:id, :name).find_by(name: “hoge”)
# pluck
User.where(name: “hoge”).pluck(:id)
“`

### データを1件取得
特定のカラムで取得
“`ruby
User.find_by(name: “hoge”)
“`
idで取得
データがない場合エラーになる
“`ruby
User.find(user_id)
“`
idで取得
データがない場合ni

元記事を表示

【Ruby】each_slice(n)メソッドの流れ

## each_slice(n)メソッドとは。
> n 要素ずつブロックに渡して繰り返します。
要素数が n で割り切れないときは、最後の回だけ要素数が減ります。
ブロックを省略した場合は n 要素ずつ繰り返す Enumerator を返します。
https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/each_slice.html

## 練習

– 標準入力
“`
1 2 3 4 5 6 7 8 9
“`

– each_sliceメソッド処理
“`ruby
nums = gets.chomp.split(‘ ‘)
# nums = [‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’]

nums.each_slice(3) do |group|
# each_slice(3)により配列を3要素ごとに分割。[‘1’, ‘2’, ‘3’], [‘4’, ‘5’, ‘6’], [‘7’, ‘8’, ‘9’]
puts group.join(‘ ‘)
# 配列要素を半角ス

元記事を表示

【備忘録】Homebrewを使ってRubyをバージョンアップする手順

## はじめに
**自己紹介**
 未経験からWEB系エンジニアへの転職を目指している者です。現在はRuby on Railsを学習中です。

**この記事を書いたきっかけ**
 Homebrewを使ってRubyをバージョンアップした際にRubyのバージョンがうまく反映されなくて苦戦したため、備忘録としてまとめました。

## 動作環境
– mac OS Sonoma 14.2.1
– Homebrew 4.2.4

## 準備
Homebrewをインストールしてしていない場合は、下記のURLを見てインストールしてください。
分からない場合は、「Homebrew インストール」とかで検索すれば、良い記事がたくさんあると思います。

https://brew.sh/ja/

## rbenvをインストールする
以下のコマンドを入力して、rbenvをインストールします。

“`:terminal
$ brew install rbenv ruby-build
“`

rbenvとは

rbenv は、Unix 系システム上の Ru

元記事を表示

OTHERカテゴリの最新記事