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

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

RubyKaigi First Effects ~私のRubyKaigi2024初体験記〜

RubyKaigi 2024にはじめて参加してきました。
実際に参加してみての感想や気になったセッション、
私のRubyKaigi Effects(RubyKaigiによって受けた影響)などを書き連ねます。
(次回参加するならこうするなの反省点もあります。)

# 事前準備
事前準備のためにやったことは下記2つです。

・気になるセッションの目星をつける
・初心者のためのRubyKaigi入門/RubyKaigi Introductionに目を通す
(下記スライドページの”そういうもん”という言葉に3日間とても救われました。)

:::note info
反省
スポンサーさんが開催されている事前勉強会やもう少し内容を深ぼって、単語単位でどういうものなのか少し調べておくとRubyKaigiをより楽しめるようになると思います。
:::

# 印象に残ったセッション
### Writing Weird Code
RubyKaigiDay1最初のキーノートで、度

元記事を表示

railsのemail_fieldのバリデーションが効かない

## 発生した事象
フォームヘルパーのemail_fieldにはバリデーションがあります。
email形式でない文字を入力した際に「メールアドレスに「@」を挿入してください~」というような文言が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1328154/0a58c8f7-177e-8c9a-e6dd-3e7369cd399b.png)

該当コード
“`erb

<%= form.label :name, style: "display: block" %>
<%= form.text_field :name %>
<%= form.label :email, style: "display: block" %>
<%= form.email_field :email %>
<%= form.submit %>

“`

この

元記事を表示

RubyKaigi2024参加記(sponsored by pixiv学生支援)

# RubyKaigi2024参加記(sponsored by pixiv学生支援)

こんにちは!
早いもので2024年もそろそろ1/3が終わり、今年の後半に差し掛かりそうな時期になってきましたね。
オンラインの大学に通う25卒の情報系学部学生のなじゃと申します。
この度、ご縁がありpixivさんの学生支援でRubyKaigiに参加することができたので、その経験を共有することを目的にこの参加記を書いています。

:::note info
Not Technical記事です。

想定読者👇
– pixivのRubyKaigi学生支援に興味がある方
– RubyKaigiに初参加してみようとしている方
:::

# 目次
– [参加のきっかけ](#参加のきっかけ)
– [RubyKaigiとは](#rubykaigiとは)
– [pixivの学生支援とは](#pixivの学生支援とは)
– [私のRubyKaigiの過ごし方](#私のrubykaigiの過ごし方)
– [1日目](#1日目)
– [2日目](#2日目)
– [3日目](#3日目)
– [RubyKaigiを通

元記事を表示

ActiveAdminのDashBoardにchartkickを表示させる方法。

### きっかけ
個人で、楽器のデータベースを作ろうとしており、その際、ActiveAdminのdashbordにグラフを表示させたく、chartkickを利用して表示できないか実験してみました。

### 前提
・すでに、activeadminを起動できていること。
・Railsのバージョンは7以上であること。

### 手順1:gemをインストールする。
以下をGemfileに書き込んだ後、bundle install
“`ruby
# Gemfile
gem ‘chartkick’
“`

### 手順2:active_admin.jsにchartkickをインポートできるようにする。
“`js
// ファイル名: app/assets/javascripts/active_admin.js
//= require active_admin/base <-- これは元々書き込んである。 //↓ 以下を追加。 //= require chartkick //= require Chart.bundle ``` ### 手順3:dashboardに表示させる。 ```r

元記事を表示

【個人開発】管理栄養士国家試験対策サービスを開発しました

# はじめに
初めまして、[よしき](https://x.com/eiyou_quiz)と申します。
今回、管理栄養士国家試験対策サービス「栄養士マスタークイズ(eiyoushi-master-quiz)」を開発しました。
初めての記事執筆なので拙い点も多いかと思いますが、その点何卒ご了承ください。

もしよろしければ最後までご覧ください!

# サービス名 : 栄養士マスタークイズ

▼ サービスURL
https://eiyoushi-master-quiz-1d4150fdbd38.herokuapp.com/

▼ Githubリポジトリ
https://github.com/Urubu495/eiyoushi-master-quiz

## サービス概要
このサービスは管理栄養士国家試験の対策をサポートする学習支援アプリです。
過去の試験問題を利用してユーザーに出題し、試験対策のための学習をサポートします。

### サービスを作成した背景
このサービスを作った理由は、私が管理栄養士国家試験の試験勉強をしていた頃、勉強する際には基本的に参考書(主に過去問集)を利用して勉強し

元記事を表示

Ruby breakとthrow&catch

## Rubyのネストされたループでのbreakとthrowの使い方

今回は、ネストされたループで特定の条件を満たしたときにループを脱出する方法の`break`と`throw&catch`の2つの違いを紹介します。

### break

`break`は、内側のループのみを脱出する際に使用します。外側のループは続行されるため、全ての組み合わせが試行されるまで処理が続きます。

以下のコードでは、`vegetables`の配列と`amounts`の配列をそれぞれシャッフルしながら繰り返し処理を行っています。`vegetable`が`’onion’`で`n`が`30`のときに`break`を使って内側のループ(amounts)を脱出しますが、外側のループ(vegetables)は続行されます。

“`ruby
vegetables = [‘cabbage’, ‘onion’, ‘eggplant’]
amounts = [10, 20, 30]
vegetables.shuffle.each do |vegetable|
amounts.shuffle.each do |n|

元記事を表示

Ruby on rails の環境構築方法(初心者用)

# Ruby on rails の環境構築方法
(初心者向け)自身の備忘としてアウトプットしています。

### 1.環境構築の準備
ターミナルにて環境構築の準備を行います。
Command(⌘)とスペースバーを同時に押すと、以下のようなSpotlightというウインドウが開くので、「ターミナル」と検索してアプリを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2984055/fc6e9eda-4266-a1fc-d9fe-4e647124abca.png)

### 2.Rubyのバージョンを確認する。
Rubyのバージョンを確認してみましょう。ターミナルを開き、以下のコマンドを実行してください。
“`
rbenv versions
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2984055/d13dd8fa-0b55-804d-42b9-93e2625121a

元記事を表示

【個人開発】お酒&おつまみの組合せを情報共有、AIで組合せ提案できるアプリを作りました

# はじめに
はじめまして、ゆうと(@bitter-or-sweet)と申します。
異業種からエンジニアに転職するため、プログラミングスクールで学習しています。
先日、お酒&おつまみの組合せを情報共有、AIで組合せ提案できるアプリをリリースしましたので、紹介させていただきます。

## 目次
[1.自己紹介](#1-自己紹介)
[2.アプリの紹介](#2-アプリの紹介)
[3.技術構成](#3-技術構成)
[4.こだわった点](#4-こだわった点)
[5.今後について](#5-今後について)
[6.おわりに](#6-おわりに)

# 1.自己紹介
工業高等専門学校卒業後、4年間電気設備工事の施工管理をしていました。
学生時代、専門科目としてC言語があり、初めてプログラミングを経験しましたが、基本についてしか学ばず、あまり実用性を感じることができませんでした。
就職後、業務改善を目的とした施工管理アプリ、社内システムなどに触れ、ITがどのように社会に貢献しているのかを実感しました。その後興味を持ち始め、利用者側ではなく開発者側として関わりたいと考え、転職を決意し、学習を始めました。

#

元記事を表示

フォルダ内のwavファイルを一音声一スライドで順に連続再生するようなPowerPointドキュメントを生成するRubyコード

PowerPointは普通はVBでスクリプティングすると思いますが、COMコンポーネントを通じて使えば他の言語からも呼び出すことができます。
こちらVBのドキュメントですが、こちらのオブジェクトにRubyからでもアクセス出来るのでやってみました。
https://learn.microsoft.com/ja-jp/office/vba/api/overview/powerpoint
PowerPoint内でマクロとして使うものはVBでないといけないでしょうが、ひな形を出力するツールとしてなら言語を選ばずなんでも行けそうです。

実行したフォルダの直下のvoicesフォルダからwavファイルを読み込み、ファイル名順で一ファイル一スライドで配置し、再生が終われば次のスライドへ行く設定をしたドキュメントを作成し、実行したフォルダにout.pptxの名前で保存します。

“`ruby
require ‘win32ole’
require “wavefile”

# PowerPointアプリケーションを起動
powerpoint = WIN32OLE.new(‘PowerPoint.Appl

元記事を表示

Rails7以前と以降でwhereなどで取得したクエリ結果を任意の順序にする方法

Rails7からクエリ結果を任意の順序にする便利なメソッドが追加されていることに気づいたので、Rails7以前と以後での方法をまとめました.

## 結論
* Rails7以降 – 新たに追加された`in_order_of`を使用.
* Rails7以前 – gem [‘order_as_specified’](https://github.com/panorama-ed/order_as_specified)の`order_as_specified`を使用.

## 問題
Active Recordを用いて、以下のようにidの配列の順番にソートしたいケースがある.

“`rb
users_id = [2, 4, 6, 3, 1]
User.where(id: users_id)
“`

しかし、これでは配列に格納された順番に関係なく、自動的にソートされてしまう.

## 解決方法

### Rails7 以前
gem [‘order_as_specified’](https://github.com/panorama-ed/order_as_specified)の`ord

元記事を表示

ECサイト開発におけるdestroy_allの使用例

# はじめに
チーム開発が無事終了し、振り返りに躓いたところをアウトプットしています。
今回はECサイトを作成する中で、カートの中身を空にするために、destroy_allを使用しました。
検索しても良い記事が見当たらず…実装するのにものすごく時間がかかってしまったので使用例を紹介しようと思います。

# destroy_allとは

Railsにはdestroy_allというActiveRecordのメソッドが用意されています。

ActiveRecordとは

Ruby on Rails で使用されるデザインパターンの一つです。
主な機能は下記です(まだまだあります)
①データベーステーブルとオブジェクトのマッピング
②CRUD操作のサポート
③バリデーション

今回は削除機能なので、②のCRUD操作サポートになります!

destroy_allは文字通り指定したレコードを全て削除することができるメソッドです。
例えば、データベース上の全てのItemを削除する場合は以下です。

“`
Item.dest

元記事を表示

[Rails7]application.bootstrap.scssの変更が反映されない

## 目的
Rails7でbin/devコマンドでサーバーを起動させた際に、エラーが起きたのでその解決方法を共有しつつ備忘録として残します。

## 開発環境
– rails 7.0.4.3
– ruby 3.1.2
– Bootstrap 5.3.3
– Popper.js 2.11.8

## 解決方法
#### 事の始まり
下記の記事を参考にRails7にBootstrap5を導入しました。

https://qiita.com/PJZ9n/items/03341f942c2c84713c99

無事bootstrapの導入が終わって動作確認をしていた際に、`application.bootstrap.scss`の変更がブラウザに反映されないことに気づきました。
これはおかしいと思って色々調べたり、試してみました。

#### Rails7では`bin/dev`を使う
投稿者は開発途中でrails6からrails7にアップデートしました。
アップデート後も`rails s`コマンドで何も問題なくサーバーが起動されていたので、そのまま`rails s`コマンド

元記事を表示

ActiveStorageを使用しての画像のリサイズがうまくいかない時

# はじめに
チーム開発が無事終了し、振り返りに躓いたところをアウトプットしています。
今回は正しくActiveStorageを導入し、リサイズの記述をしているはずなのに、リサイズされない現象が起きました。
解決方法をまとめています。

# ActiveStorageの導入手順
まずはじめに、ActiveStorageのインストールを行います。

“`
$ rails active_storage:install
“`

インストールが終わるとdb/migrateディレクトリ内にActiveStorageのマイグレーションファイルが追加されます。
これをmigrateします。

“`
$ rails db:migrate
“`

ActiveStorageを使用して画像表示をするためには、どのモデルで画像を使用するのか宣言する必要があります。
今回はItemモデルに記述していきます。

“`app/models/item.rb
class Item < ApplicationRecord has_one_attached :item_image end ``` これでA

元記事を表示

Microsoft Graph API を Ruby で操作してみる

タイトル通り、Microsoft Graph API を Ruby で操作してました。
パッと検索してもあまりわかりやすい情報が出てこなかったため、手順をメモ書きしておきます。

## 準備編

### 1. Microsoft Azure にサインイン

[Microsoft Azure](https://portal.azure.com/) にアクセスし、Microsoftアカウントでサインインします。

![スクリーンショット 2024-05-19 19.06.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688854/45201e0a-e8ef-d2ff-de8d-b791a6774bf6.png)

### 2. アプリを作成

サインインに成功したら、[アプリの登録](https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade) からアプリを新規作成します。

![スクリーンショッ

元記事を表示

特定のリポジトリのIssueを全てクローズするスクリプト

GitHubでまとめてIssueを閉じたりする場合、数が少ないなら手動でポチポチ行えば良いです。
ただ、Issueが数百ある場合は面倒なので工夫をしたいです。
今回使われなくなった社内のリポジトリをアーカイブする作業があり、その前にIssueを全て閉じる作業を行うためのスクリプトを作成してみました。

https://github.com/Umekawa/issue_closer

## アクセストークンの準備

まずスクリプトなどを利用してGitHubの操作を行う場合、アクセストークンを発行する必要があります。
GitHubにアクセス・ログインし、今回は右上の自分のアイコンをクリック -> `Settings` -> `Developer Settings` -> `Personal access tokens` -> `Fine-grained tokens` と辿っていきます。
`Fine-grained personal access tokens`のページに到達したら、`Generate new token`をクリックし、トークンの作成画面にジャンプします。

トークンの作成

元記事を表示

[Rails7] Popper.js Popper__namespace.createPopper is not a function エラー解決方法

## 目的
Rails7で後からbootstrap5を導入しました。
その際にPopper.jsのエラーにハマったのですが無事解決でき、記事が少なかったので備忘録として投稿します。

## 開発環境
– rails 7.0.4.3
– ruby 3.1.2
– Bootstrap 5.3.3
– Popper.js 2.11.8

## Bootstrap5導入方法
rails7で後からBootstrap5の導入をしたい方はこちらを参考にしてください。

https://qiita.com/PJZ9n/items/03341f942c2c84713c99

投稿者はこの記事を参考にしてBootstrap5を導入する途中でPopper.jsのエラーにハマりました。

## エラー内容
ブラウザでBootstrapのjavascriptで動く部分の動作確認をしていたら、下の写真のようなエラーに遭遇しました。

エラー名:`Popper__namespace.createPopper is not a function`

![スクリーンショット 2024-05

元記事を表示

Redmineのバージョンをrequireせずに読み取る

とある処理を書いていて、Redmineのバージョンを知りたいな〜と思うタイミングがありました。

しかしRedmineの`version.rb`はsubversionの処理への依存関係を持っており、なんかrequireしたくないなーという感じでした。

https://github.com/redmine/redmine/blob/6a4abab8ce00b5b0cb6e0a161bfedf3366393308/lib/redmine/version.rb
“`rb
require ‘redmine/scm/adapters/subversion_adapter’
“`

そこでパースして読み取ってみることにしました。

## Prism

まずはPrismを使ってみました。Ruby 3.3.0以上にはバンドルされていますが、それ以前のRubyでは自分でgem installする必要があります。

“`rb
require ‘prism’

class MyVisitor < Prism::Visitor def initialize @version_hash =

元記事を表示

rbenv versionで指定Versionが変更しても、ruby -vでVersionが変更されていない

# サマリ
Ubuntu22.04LTS にはRubyがプリインストールされていますが、後からインストールしたbenvとrubyとのバージョンに齟齬が発生しました。
どうやらMacOSとかでもこういう現象がままあるようです。
“`
~$ rbenv local 3.2.3
~$ ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]
“`

# 環境
WSL2(windows11)
Ubuntu22.04LTS

# 原因
ちゃんとrbenvのREADMEに書いてありました。穴があったら入りたい。

https://github.com/rbenv/rbenv?tab=readme-ov-file#installation

要はrbenvが環境変数を利用するために必要な設定が抜けてました。
rbenvが管理するRubyのバージョンを適切に切り替えるためのコマンドを通すためのパスが通ってなかったことになります。

# 対策
rbenvが参照にしているユーザー設定ファイルを確認します。

元記事を表示

現場で使える ruby on rails 5速習実践ガイド を読んでみて

# はじめに
現場で使える Ruby on Rails 5速習実践ガイドを読んでみて感じたこと、調べてみたことにまとめました
# 良かったところ
* Railsでかかれているアプリケーションの構築方法だけでなく、どうやって動いているかまで詳しく説明されていて良かった
* テストの重要性やチーム開発の流れについて書かれており、実際に実務をイメージすることができる内容でした
* コードのリファクタリングや共通化に関してもわかりやすく書かれていた
# 学んだこと
### rails7 でのセットアップ
本書はrails5での書き方をされているため、現在(2024/05)使われているrails7での書き方に直す必要がありました
今回は、Dockerでの構築でのセットアップを紹介しようと思います
本書で学ぶ際にセットアップで悩んでいる方がいらっしゃれば、
参考にしていただけると幸いです

dockerでの構築で参考にさせていただいたのは、
Udemyで講座を配信しておられる
かめれおん さんの`米国AI開発者がゼロから教えるDocker講座`です

https://www.udemy.com/c

元記事を表示

GopherからみたRubyKaigi 【学生支援 by pixiv】

# はじめに
どうもKizukuです。
今回は[pixiv](https://www.pixiv.net/)様の学生支援を受けて[RubyKaigi2024](https://rubykaigi.org/2024/)に参加してきたので、その内容について記事にしたいと思います。
僕は普段Goを書いており、Rubyに関しては初心者であるため、RubyKaigiの詳しいセッションの内容や発展的な感想等は含まれません。あらかじめご了承ください。

今回の僕のRubyKaigiに参加する目的はこちら
– Rubyistとのつながりを作る
– 僕は今まで様々なカンファレンスやイベントに参加してきましたが、Ruby関連のイベントにはほとんど参加したことがなくRubyistとのつながりがほとんどなかったため、RubyKaigi本編やアフターイベントなどを通じて様々な方と繋がれたらいいなと思いました
– OSS活動をしている方のセッションやお話を聞いて熱量を知る
– RubyKaigiはRubyを”使う”人ではなく、Rubyを”作る”人のカンファレンスで、Rubyそのものや関連ライブラリ

元記事を表示

OTHERカテゴリの最新記事