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

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

Rails7.2をちょこっと試す(少し静かな rails new 編)

# はじめに
Rails 7.2.0 beta1 がリリースされたので、ちょこっと試してみました。

Rails 7.2 では、`rails new` のときに `bundle install` が `–quiet` オプション付きで実行されるようになりました。

## Rails 7.1

Rails 7.1 では、`rails new` を実行したときに `bundle install` が `–quiet` オプションなしで実行されます。
bundle install による出力が表示されます。
“`shell
root@2d5740c8a6b6:/app# rails -v
Rails 7.1.3.3
root@2d5740c8a6b6:/app# rails new sandbox –database postgresql
create

run bundle install

“`

## Rails 7.2

Rails 7.2 では、`rails new` を実行したときに `bundle i

元記事を表示

RubocopにUse only specific action names (create, destroy, edit, index, new, show, update).と指摘された場合

この記事はRuby, Railsを学習中の者が課題に取り組んでいる時に遭遇した問題について取り上げたものです。解決方法が正しくない、内容が間違っている場合はご指摘頂けると幸甚です。

今回は機能の実装が終わってrubocopにコードの確認をしてもらった際に遭遇した違反(offense)内容に対する対策を備忘録も兼ねて記事にしたいと思います。
※rubocopの設定は使用している企業や環境によって異なります。

“`ruby:
app/controllers/carts_controller.rb:6:7: C: Hc/RailsSpecificActionName:
Use only specific action names (create, destroy, edit, index, new, show, update).
def add_merchandise
^^^^^^^^^^^^^^^
“`
内容としては具体的なアクション名については下記の7通りの名前だけを使うようにとの指示。
`create`, `destroy`, `edit`, `index`,

元記事を表示

pry-byebugを使ってRuby on Railsでのデバッグ

Ruby on Railsでアプリケーションを作成するうえで、必ずエラーに遭遇します。そのためエラーを解決する能力というものが、開発を行う上で必須の能力となります。

今回はこのエラーが発生した際に、どうすればエラーを解決できるかという方法についてご紹介します。最初はエラー画面が怖いものですが、エラー対応を身に着けることで飛躍的に成長できるので頑張りましょう!

## 「pry-byebug」の使い方

「pry-byebug」とは?については、下記リンクにて説明があります。気になる方は、こちらをご覧ください。それでは早速ですが、使い方について説明します。

[>> 「pry-byebug」とは?](https://taishi-official.com/2021/05/21/729/#toc1)

### 「pry-byebug」のインストール
Gemfileのgroup :developmentの最後に、以下の追記をすることで使用できます。

“`ruby:Gemfile
group :development do

gem ‘pry-byebug’
end
“`

元記事を表示

若手RubyエンジニアがRubyKaigi 2024に初めて参加してみた

# はじめに

Akira Matsudaさんの「初心者のためのRubyKaigi入門/RubyKaigi Introduction」を拝見し、ruby kaigiの楽しみ方として
「わからないけど気にしない」
「本物のプログラマーたちのすっごいかっこいい姿がみれる」
ことと話されていました。

実際に参加してみたところ、全体的に難しくて正直、あまり理解ができていない部分が多々あります。
そんな中でも、初めて知った技術や面白かったセッションの概要について、同じく若手のRubyエンジニアと学びを共有できるようにしたいと思い今記事を作成しました。

# 内容
印象に残っているセッションと、セッションを聞くにあたり調べた知識についてまとめました。

# keynote(Day1)
Rubyという言語が、読みやすいコードを書くのにも、読めない奇妙なコードを書くのにも優れた言語であることを発表されていました。

参考:
https://drive.google.com/file/d/1Dkx15u_5UAGoFqJHCeAuj2FXS-z_U7EE/view

「意味のなさそうな思考をしてみるこ

元記事を表示

RubyKaigi 2024 にヘルパー参加してきた

こんにちは、 Qiita株式会社の @tomoasleep です。
今年も RubyKaigi に参加してきました。今年はヘルパー (当日に運営の手伝いをするスタッフ) として参加してみました。どうして参加したか、参加してどうだったかを書いていこうと思います。

## なんでヘルパーやろうと思ったか

これはもうズバリ **RubyKaigi, Ruby コミュニティ, Ruby を更に楽しみたい**、と思ったからです。

RubyKaigi への参加は過去3回 (仙台、三重、松本) 参加しているのですが、とにかく最高 (Ruby 言語自体の話、処理系の話が日本で聞ける、 Rubyist 同士で Ruby に関する話が色々出来る、Rubyist の知り合いが増える、知り合いと再会できる…etc) だし、 Ruby, RubyKaigi に貢献している人もすごいなあ、と感じていました。

そんな中、 RubyKaigi 2024 のヘルパー募集を見て、「貢献する側に回ってみたいな、サポートする側に回ることで更に楽しめないかな」と思って応募することにしました。

https://x.com

元記事を表示

いろいろな命名規則まとめ

# 初めに
命名規則って結構言語ごとによって決まりが違うので、久しぶりに使う言語とか初めて使う言語とかとにかく普段使ってない言語だと命名規則がわからなくなるんですよね。

なので、まとめちゃいました。

# 各プログラミング言語の一般的な命名規則

プログラミング言語ごとに異なる命名規則を守ることで、コードの可読性と一貫性を高めることができます。

## Python
– **変数名**:`my_variable`
– **説明**:Pythonではスネークケースが推奨され、単語はアンダースコアで区切る
– **関数名**:`def my_function():`
– **説明**:関数名もスネークケースで記述され、可読性が高まる
– **クラス名**:`class MyClass:`
– **説明**:クラス名はパスカルケースで、各単語の先頭を大文字にする
– **定数名**:`MY_CONSTANT = 10`
– **説明**:定数はすべて大文字で、アンダースコアで単語を区切る
– **ファイル名**:`my_script.py`
– **説明**:ファイル名

元記事を表示

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) からアプリを新規作成します。

![スクリーンショッ

元記事を表示

OTHERカテゴリの最新記事