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

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

ブロック変数とは?

ブロック変数は、Rubyのプログラミングにおいて、ブロック内で使われる変数のことです。

ブロックは、do … end または { … } で囲まれたコードの塊で、イテレータメソッド(例えば each, map, select など)と共に使用されます。

ブロック変数は、これらのイテレータメソッドによって供給される値を受け取るために使用されます。

## ブロック変数の特徴と動作
**定義と範囲**

ブロック変数は、ブロックの開始部分で | |(パイプライン)の間に定義されます。
この変数はブロック内部でのみ有効で、ブロックの外部からはアクセスできません。

**値の受け取り**

ブロック変数は、イテレータメソッドから値を受け取ります。例えば、each メソッドが配列の各要素を順にブロック変数に渡します。

## 使用例

例えば、[1, 2, 3].each do |number| の場合、number はブロック変数です。each メソッドは配列 [1, 2, 3] の各要素を順に number に渡し、その都度ブロック内のコードが実行されます。

“` r

元記事を表示

| n | 君は何者?

rubyの学習をしていると

| n | 

| i |

| number |

なんかよくみるやつありますよね、例えば

“` ruby

numbers = [1, 2, 3, 4]
sum = 0
numbers.each do |number|
sum += number
end
puts sum

“`

上記のコードで numbers っていうのは変数で 配列として  1,2,3,4 を代入しているというのはわかるんですが

|number|

変数として宣言した numbers ではないし

単数系だしどこからきたねん! なるほどわからん。状態でした😅

上記のコードが何をしているかというと

– 配列の定義: numbers = [1, 2, 3, 4] この行は、1, 2, 3, 4 という四つの要素を持つ配列 numbers を作成している。
– 合計の初期化: sum = 0 この行は、合計を計算するための変数 sum を0で初期化。これは、配列の要素を加算していくための開始点。

– 各要素の加算: numbers.each do

元記事を表示

Fly.ioでrails db:seedを実行する方法

## 自己紹介
はじめまして、はると申します。現在はスクールに通いながら学習をしています🐥

## 概要
Fly.ioでRailsアプリをデプロイした際に、`rails db:seed`を実行する方法。

### 環境
– Ruby: 3.2.2
– Rails: 7.0.8

:::note warn
初学者のためデプロイ周りの知識が浅く、間違っている箇所がある可能性があります。また、うまく行った方法の1つを紹介していますが、より良い方法を知っている方がいたら教えて頂けると嬉しいです🙇
:::

## 結論
RAMサイズを`256MB`から`512MB`に上げた後、

このコマンドでうまくいきました。
“`
hogehoge@hogehogenoMBP アプリ名 % flyctl console

irb(main):001:0> Rails.application.load_seed
=> true
“`

## 詳細
Fly.ioでのseeds.rbの反映方法について調べて見つけたコマンドを実行しましたが、下記のようなエラーが出て実行できませんでした。

“`
hoge

元記事を表示

【Rails】StimulusでGoogleMapApiを扱ったら良い感じだった話

## この投稿は、

DMM WEBCAMP Advent Calendar 2023
シリーズ2 投稿7日目のエントリー(大遅刻穴埋め勢)です。

6日目は、@Hiron0120 さんで、

https://qiita.com/Hiron0120/items/c1e1c5fedc3871c92855

でした。

## はじめに
DMM WEBCAMP でメンターをやらせていただいております。 @tomoaki-kimura です。
Rails7はフロント周りがとても楽しくなりました。 `Stimulus`もその一つです。丁度よい機能と学習コストです。
Rails6環境でも `Stimulus` を使ったJSの管理はかなり有用です。

JQueryも状況によっては全然アリなのですが、どうやら世の中脱JQueryの流れにはなっているようですし、今後を踏まえてキャッチアップしておくのも手ではないでしょうか。

という事で今回は、GoogleMapApiを [Stimulus](https://github.com/hotwired/stimulus-rails)で書いていこうと思います

元記事を表示

Rails × ChatGPT 投稿内容をAIで加工する

:::note warn
**この記事のポイント:** OpenAI APIを使って投稿内容を加工する機能を作りました。今回はある意味ジョーク的な機能ですが、実際にどんな使い道があるかの検討も最後に触れています。
:::

# はじめに

[前回の記事](https://qiita.com/MaTTA_RUNTEQ50B/items/3cb46ddf1be17899df00)でRailsにChatGPT(OpenAI API)による生成テキストをindex画面に表示させる実験を行いました。APIを叩けたことは良いのですが有用かと問われるとそうでもなく、さらにいうとページを読み込むたびにレスポンス待ちに数秒かかるという始末でした。

せめてもう少しだけ実用的な使い道を考えようというのが今回のモチベーションです。

RailsにChatGPTのAPIを用いる流れは前回の記事を参考ください

https://qiita.com/MaTTA_RUNTEQ50B/items/3cb46ddf1be17899df00

# 完成品
Western Modeにチェックを入れた状態で投稿す

元記事を表示

RailsでChatGPT(OpenAI API)を使ってみる

:::note info
**この記事のポイント:** Ruby on RailsアプリにChatGPTの出力を組み込んでみました。APIを叩けるか試してみるのが主目的で、アプリの機能(使い道)の提案としては大したものではありません。
:::

:::note warn
一部有料の内容を含みます(OpenAI API利用料)
Rails初学者が学習目的で執筆しております。誤り、改善点などぜひご指摘ください
:::

# はじめに

ChatGPTをはじめとするLLM(大規模言語モデル、生成系AI)の発展により、身近なソリューションに様々な変革が起きています。自分は普段Pythonで自然言語関連のタスクを扱うことが多いのですが、最近学習を始めたRuby on Railsにおいても、LLMを組み合わせることで何かおもしろいことができるのではないかと自然に考えが及びましす。

ということで今回はRailsアプリにChatGPTの出力を表示させられるのか、その動線を確かめてみました。

### 参考にしたサイト

[Use ChatGPT API with Ruby on Rails](ht

元記事を表示

【Ruby Gold3.1詰まったシリーズ】アクセッサメソッドについて

# はじめに
今回はアクセッサメソッドに関する内容です。アクセッサメソッドは最初見た時なんだこりゃとなったのでまとめてみます。

# 確認してみた
環境はruby2.5.3です。
[こちら](https://qiita.com/yoshimitsu_g/items/5f174ff74d8e8b15b0be)の記事より抜粋させていただきます。
アクセッサメソッドは3つの種類があります。
~~~
attr_reader #read(読む)
attr_writer #write(書く)
attr_accessor #access(読むと書くの両方)
~~~
ということで、アクセッサメソッドを試してみます。
まず最初にattr_readerとattr_writerを記述したコードです。
~~~ruby
class Cls
attr_reader :hoge
attr_writer :hoge

def initialize
@hoge = 1
end
end

x = Cls.new
x.hoge = 10
x.hoge
~~~
上記を実行すると

元記事を表示

Ruby芸160チャレンジ(#16)内部状態を保持しながら処理を繰り返す

## この記事は何
[shellgei160を通じて言語習得 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/learning-via-shellgei160)に参加しています。

書籍「シェル芸ワンライナー160本ノック」の例題をRubyで解いてみて、Rubyの学習に役立てようとするものです。

例題はこちらのリポジトリで公開されているものに限ります。
https://github.com/shellgei/shellgei160

## 実行環境など
– Docker image: ruby:3.0.2
– 上記リポジトリをクローンした上で、リポジトリのルートディレクトリ直下に`answer-ruby`ディレクトリを作り、その中に解答となるファイルを作成していきます。

## 今回のテーマ
https://github.com/shellgei/shellgei160/blob/master/answer/16.md

“`bash
$ n=”XYZ”;(for i in {A..C};do n+=$i;e

元記事を表示

Rubyで蒸気機関車を走らせたら子供は喜んでくれるか?

この記事は[SmartHR Advent Calender 2023](https://qiita.com/advent-calendar/2023/smarthr)の16日目の記事です。

## 背景

今年もAdvent Calenderの季節がやってきたのでテーマについて考えていました。ふと子供がプラレールで遊んでいるのを眺めていて、プログラミングと電車で何かできないか?と考えてみました。もしRubyで電車を走らせてみたら子供が喜んでくれるかな?と思い、Rubyで電車を走らす何かを作ってみることにしました。

## プログラミングと電車といえば sl コマンド

https://github.com/mtoyoda/sl

Unix系OSで ls コマンドを実行しようとした際に、 **sl** とミスタイプすると蒸気機関車がコンソール上に走るという有名なコマンドがあります。

この sl コマンドを参考に、Ruby版を実装してみることにしました。

### 謝辞

* 本記事内のソースコードは[slコマンドのLICENSE](https://github.com/mtoyoda/

元記事を表示

【脱 初心者】Railsで学ぶN+1問題

# はじめに
[DMM WEBCAMP Advent Calendar 2023](https://qiita.com/advent-calendar/2023/infratop) 16日目です:christmas_tree:
メンター・卒業生が記事を投稿しておりますので、是非他の記事もご覧ください!

# 読んで欲しい人
– RailsでCRUD処理が書けるようになってきた!
– 次なるステップアップをしたい!

初学者向けにわかりやすい言葉を使って説明していきます

# N+1問題とは?
データベースへの問い合わせ(クエリの実行)をたくさん行ってしまうことによってパフォーマンスが落ちてしまう問題のことです。

## 例
本を投稿できるようなアプリを例にします
“`mermaid
erDiagram
User ||–o{ Book : “一人のユーザーは複数の本を持つ”
“`

“`books_controller.rb
def index
@books = Book.all
end
“`
本の一覧ページでは、アソシエーションを利用して本を投稿したユーザーの

元記事を表示

cv bxcv bcv bccxv bcxv bxcvbxcvbcxvbcvx b

https://www.unation.com/un-event/ppvtv-boxing-full-fight/
https://www.unation.com/un-event/watch-boxing-streams/
https://www.unation.com/un-event/live-fight-boxing-streaming/
https://www.unation.com/un-event/stream-boxing-tonight/
https://www.unation.com/un-event/streams-influencer-boxing/
https://www.unation.com/un-event/watch-youtuber-boxing/

元記事を表示

Windows11 + Docker環境でRuby on Rails+PostgreSQLの環境構築

# 自己紹介
来年から新卒入社でエンジニアとして働き始める蛇姫と申します。
Ruby on Railsで開発を行った際にDockerを使用したので備忘録として残したいと思います。
初めての記事投稿なので至らないところも多々あるかとは思いますが、何か間違い等ありましたらご指摘のほどよろしくお願いいたします。

# 背景
システムの開発にあたって最初はWindows上で開発を行っていたのですが、AWSにデプロイする際に、[unicornのインストールがWindowsでは行えなかったため](https://teratail.com/questions/355134)、dockerを用いてunicornを利用できる開発環境を用意することにしました。

# 前提条件
* Docker Desktopがインストール済みであること
* WSLがインストール済みであること

# 構成情報(2023年12月16日)
* Windows 11 home
* ruby 3.2.2
* Ruby on Rails 7.1.2
* Docker version 24.0.5
* Ubumtu 22.04 LTS

元記事を表示

[Ruby] 実行されない if 文でも変数は定義される

# 気づいたこと

最近こんなコードを書いていました

“`rb
if false
x = “hello”
end

puts x || “test”
“`

出力は以下のようになります

> test

if のなかの条件式は常に false になるので中身コメントアウトするかーと思ってコメントアウトするとエラーになりました

“`rb
if false
#x = “hello”
end

puts x || “test”
“`

> Main.rb:7:in `

‘: undefined local variable or method `x’ for main:Object (NameError)

# 原因
どうやら Ruby は完全なインタプリタ言語ではなく実行前にコードをコンパイルしているみたいです

https://magazine.rubyist.net/articles/0053/0053-YarvManiacs.html

実行前にコンパイラが走っているので実行されない if 文の中身も事前に評価されて変数が定義された状態になって

元記事を表示

【Ruby Gold3.1詰まったシリーズ】配列の添字演算子について

# はじめに
今回は配列に関する内容です。配列の添字演算子については、GoldではなくSilverの範囲だろうと油断していたら突然試験に出てきて理解があっているか不安になったのでまとめてみます。

# 確認してみた
環境はruby2.5.3です。
配列[1,2,3,4,5,6,7,8]から[4,5,6]のみを取得する方法として、下記を実行する。
~~~ruby
ary = [1,2,3,4,5,6,7,8]
ary[3..-3]
ary[3..5]
ary[3…6]
ary[3…-2]
ary[3,3]
~~~
すると、
~~~
irb(main):001:0> ary = [1,2,3,4,5,6,7,8]
=> [1, 2, 3, 4, 5, 6, 7, 8]
irb(main):002:0> ary[3..-3]
=> [4, 5, 6]
irb(main):003:0> ary[3..5]
=> [4, 5, 6]
irb(main):004:0> ary[3…6]
=> [4, 5, 6]
irb(main):005:0> ary[3…-2]
=> [4, 5

元記事を表示

Ruby芸160チャレンジ(#15)文章の大文字化・タイトルケース化

## この記事は何
[shellgei160を通じて言語習得 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/learning-via-shellgei160)に参加しています。

書籍「シェル芸ワンライナー160本ノック」の例題をRubyで解いてみて、Rubyの学習に役立てようとするものです。

例題はこちらのリポジトリで公開されているものに限ります。
https://github.com/shellgei/shellgei160

## 実行環境など
– Docker image: ruby:3.0.2
– 上記リポジトリをクローンした上で、リポジトリのルートディレクトリ直下に`answer-ruby`ディレクトリを作り、その中に解答となるファイルを作成していきます。

## 今回のテーマ
https://github.com/shellgei/shellgei160/blob/master/answer/15.md

小問が2個あります。

“`bash
小問1$ echo I am a perfect

元記事を表示

【Rails7】Maps JavaScript APIを使って投稿を地図上にピンで表示する

## 自己紹介
はじめまして、はると申します。現在はスクールに通いながら学習をしています。
今回、[スクール内のアドベントカレンダー](https://qiita.com/advent-calendar/2023/runteq)に参加し、**『初めて学んだ技術』** というテーマで記事を書きました🐥

## 概要
Google MapのAPIを利用し、地図上に投稿の一覧をピンで表示させます。
(新規投稿を作成する機能の実装は含みません)
– Maps JavaScript API
– Geocoding API

### 環境
– Ruby: 3.2.2
– Rails: 7.0.8
– esbuild

:::note warn
初学者のため、間違っている箇所や、紹介した方法よりも良い方法があるかもしれませんので、その際は教えて頂けると嬉しいです🙇
:::

## APIキーの準備
初めてGoogle Cloud Platformを使う想定で記載します。すでに登録済みの方は[使用するAPIの有効化](#使用するapiの有効化)に進んでください。

### Google Cloud

元記事を表示

Rubyの型チェッカー「Sorbet」を導入した話

リンクアンドモチベーション [Advent Calendar 2023](https://qiita.com/advent-calendar/2023/lmi)の15日目の記事です:christmas_tree:

# はじめに
株式会社リンクアンドモチベーションの葛葉(くずば)です。
現在、新卒2年目で、[モチベーションクラウド](https://www.motivation-cloud.com/)のバックエンドエンジニアとして、新規機能の開発を担当しています。
複数の言語でもサーベイの回答、結果の確認ができるようにする開発をおこなっています。

本記事では、メイン業務と並行で進めていたプロジェクト **「Ruby(Ruby on Rails)における静的型付け」** について書きたいと思います。

同じように静的型付けを導入しようとしているプロダクトは少なくないと思います。
この記事を見ることで、

:::note info
– 静的型付けを導入するメリットが分かる
– 代表的なツールであるSorbetの使い方が分かる
:::

記事となっています。少しでも参考になれば幸いです。

元記事を表示

コードオーナーがよくレビューする事5選

# はじめに
[Hubble Advent Calendar 2023](https://qiita.com/advent-calendar/2023/hubble)の11日目[^1]です!
[^1]:平日のみの投稿なので15日ですが11日目の記事としています。

Hubbleでバックエンドエンジニアをしている @power3812 です。オブジェクト指向大好きマンで、神クラスを作れないかと模索の日々です:innocent:

Hubbleのバックエンドチームは[コードオーナー](https://docs.github.com/ja/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)制度を導入しており、PRを出す際にコードオーナー1人以上のapproveがないとマージすることが出来ません。
その際にJoinしたての方によく自分がレビューする内容5選を紹介しようと思います:sunglasses:

## 1. ActiveRe

元記事を表示

【Rails】入社前にやった方が良かった教材まとめ 【React】

## はじめに
現在、現場でReactとRuby on Railsを使用して開発しています。

その上で入社前に自分で読んでもらいたい教材を
紹介していきます!

## [プロを目指す人のためのRuby入門\[改訂2版\] 言語仕様からテスト駆動開発・デバッグ技法まで](https://www.amazon.co.jp/dp/4297124378)
– Rubyを使う方、全員におすすめしたい本
– 呪文のような構文もこれを読めば理解できるようになる(はず)
– 初版を買わないように注意してください!

>本書は、プログラミング言語Rubyの言語仕様や開発の現場で役立つRubyの知識を説明した本です。豊富なサンプルコードで文法を学び、例題でプログラミングの流れを体験できます。第1版(2017年11月発行)は、初心者の目線

元記事を表示

【Rails】ビットマスクを活用した、Todoアプリを作ってみませんか?

# はじめに
DMM WEBCAMPのAdvent Calendarの **15** 日目の担当することになりました、@takakouと申します🏙️✨

今回は、「**ビットマスクを活用した、Todoアプリを作ってみませんか?**」というテーマで記事をシェアします!📝

記事執筆は未熟者で、至らない点もあるかと思いますが、皆さんのコメントやフィードバックをお待ちしています!🚀💬
# 目次

1. [目的 🎯](#1-目的)
1. [対象者 👨](#2-対象者)
1. [動作環境 🖥️](#3-動作環境)
1. [アプリ概要 🛠️](#4-アプリ概要)
1. [実装手順 🚀](#5-実装手順)
1. [参考文献 📚](#6-参考文献)
1. [おわりに 🎉](#7-おわりに)

# 1. 目的
最初に本記事の目的を説明しておきます。
– タスクを管理するアプリで設定する曜日指定の定業タスクの発生周期や、カレンダーアプリなどの予定の発生周期を設定するのって内部的にどんな動きをしているのか理解する。
– ビットマスク

元記事を表示

OTHERカテゴリの最新記事