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

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

【ruby初心者向け】基本的な名前の書き方を知りたい!

# 名前をつける時の命名規則ってどれ使うんだっけ?
rubyのプログラミングの勉強を始めたての方だと、変数名や関数名などの命名をどうすればいいか分からない…命名規則って何???って思う人が多いと思います。僕もそうでした。

プログラミングで使われる一般的な命名規則は5種類あります。
– スネークケース
 アンダーバーで小文字の単語を繋げる
 例:example_test
– スクリーミングスネークケース
 アンダーバーで大文字の単語を繋げる
 例:EXAMPLE_TEST
– キャメルケース
– ローワーキャメルケース (キャメルケース)
 最初の単語の先頭を小文字に、2番目以降の単語の先頭を大文字にして繋げる
 例:exampleTest
– アッパーキャメルケース (パスカルケース)
 単語の先頭を大文字にして繋げる
 例:ExampleTest
– ケバブケース(ハイフンで小文字の単語を繋げる)
 例:example-test

うーん、どれを使えばいいか分からん…
パッと見て、そう思った人がいるはず…
なので、場合ごとの命名方法を1分で分かる

元記事を表示

enumerize が適用されているカラムに定義外の値が入るとデフォルト値固定になる

以下のように定義されている場合に

“`ruby
class User
enumerize :status, in: {
authorized: 1,
invalid: 2,
}, default: :authorized, scope: true
end
“`

以下のようにレコードを登録してみる。

“`
+—–+——–+
| id | status |
+—–+——–+
| 1 | 99 |
+—–+——–+
“`

このレコードを ActiveRecord を通して取得してみると

“`ruby
pry(main)> User.find(id: 1).status
=> “authorized”
“`

`authorized` として取得される。元の値を取得しようとしても

“`ruby
pry(main)> User.find(id: 1).status_before_type_cast
=> 1
“`

と `authorized` の値になっている。デフォルトが `au

元記事を表示

スキルチェック問題を解いてみる

## はじめに
ハンズオン学習の一環として、昨日からpaizaのプログラミング問題集をのそのそ取り組みだし、
Dランクの問題がすんなり解けるようになったので、本日はCランクを解いてみました。

使用言語はRubyです。

## 問題1:じゃんけんの結果

自分の回答
“` qiit.rb
n = gets.to_i

win = 0

n.times do
alice, bob = gets.chomp.split
if (alice == “G” && bob == “C”) || (alice == “C” && bob == “P”) || (alice == “P” && bob == “G”)
win += 1
end
end

puts win
“`

## 問題2:プレゼント応募企画の実施

自分の回答
“` qiit.rb
N,X,Y = gets.split.map(&:to_i)

(1..N).each do |i|
if i % X == 0 && i % Y == 0
puts “AB”

元記事を表示

Herokuデプロイ時に Precompiling assets failed. が起きた

### 前提条件
“`markdown: バージョン / スペック
macOS: Sonoma 14.5 / M2
Ruby: 3.3.1
Ruby on Rails: 7.1.3
Tailwind CSS: 3.4.3
daisyUI: 4.11.1
Heroku: 8.11.5
“`

“`markdown: 経緯
1. Ruby on Rails に Tailwind CSS / daisyUI を適応
– $ rails new APP_NAME -c tailwind -d postgresql
2. ローカルでは無事CSSが適応されていることを確認
3. Herokuデプロイ時にエラーが起きた
– Precompiling assets failed.
– Error: Cannot find module ‘daisyui’
“`

【参考資料】
– [Install daisyUI as a Tailwind CSS plugin](https://daisyui.com/docs/install/)
– [Heroku スターターガイド

元記事を表示

Rails でメールを送信する

### 1. 送信元メールアドレス(gmail)の google アカウントの2段階認証を完了させる。

[google アカウントの Security 設定](https://myaccount.google.com/security)で、2段階認証を設定する。

### 2. 送信元メールアドレス(gmail)の google アカウントでアプリパスワードを作成する。

[google アカウントの App Password 設定](https://https://myaccount.google.com/apppasswords)で、アプリパスワードを設定すると、16個のアルファベット文字列を取得できる。これがアプリパスワード。

### 3. Rails 側の設定

##### 1️⃣ 以下のコマンドを入力

“`
rails g mailer UserMailer
“`

すると、以下のようにディレクトリが作成されます。

“`
create app/mailers/user_mailer.rb
create app/mailers/appl

元記事を表示

ActiveRecord のパフォーマンス関連 Tips

## はじめに
これは ActiveRecord のメモリ節約や処理速度向上等のパフォーマンスに関していくつか調べたり知り得たことを書き留めたメモです。どちらかというと API よりバッチ処理に主眼をおいた Tips になります。
またパフォーマンスを重視する場合、コードの読みづらさだったり、バグを仕込んでしまったりとのデメリットとのトレードオフになることも多いのでその点はご留意ください。

## インスタンス化を避ける
ActiveRecord のインスタンス化はかなり時間の掛かる処理です。
例えば CSV を元に何千何万件の登録を行うような処理で、事前に各レコードに対して ActiveRecord のバリデーションやフックアクション(`before_validation`とか)を通したいことがあります。
この時に毎回 `new` して `valid?` していくとめちゃくちゃ時間がかかりますが、一度初期化したインスタンスにデータだけを上書きして使い回すようにするとかなり早くなります。ただし、使い回すことによる副作用もあると思いますのでその点は十分ご注意ください。

## `e

元記事を表示

Rails viewからcontrollerに値を渡す方法

この記事はプログラミング学習者がコードを書く中で得られた内容を備忘録を兼ねて記事にしたものです。間違った所などあればご指摘頂けると嬉しいです。

## 変数の受け渡しについて
Railsで変数を受け渡す時にcontrollerからviewへ受け渡すというのは良くやります。
これまでもコードを書く中で何度も使ってきました。

“`ruby:merchandises_controller.rb
class MerchandisesController < ApplicationController def index @merchandises = Merchandise.with_attached_image end end ``` ```ruby:index.html.erb<% @merchandises.each do |merchandise| %>


<% if merchandise.i

元記事を表示

レベルアップ問題を解いてみる

## はじめに
paizaの問題集を使い、ハンズオン学習をしています。
標準入力の問題を一通り解いたので、レベルアップ問題に挑戦してみました。

## 乗客人数 Ruby編
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__accompanied_by_stdin_boss

自分の回答
“` quiita.rb
a,b,c = gets.split.map(&:to_i)

n = a
n -= b
n += c

puts n
“`
– map
入力値を配列に格納するメソッド

## 占い Ruby編
https://paiza.jp/works/mondai/d_rank_level_up_problems/d_rank_level_up_problems__conditions_branch_boss

自分の回答
“` quiita.rb
n = gets.chomp.to_i

if n == 7
puts “Yes”
else
puts

元記事を表示

標準入力問題を解いてみる

# はじめに
5月末に某プラグラミングスクールでの学習課程が終了したので、
心機一転、自己学習の振り返りと記録を目的とし、本日の学びを毎日Qiitaブログに公開していきます。

早速本日から、Paizaのプログラミング問題集を使い学習を始めたのでメモ。

前提
使用言語はRubyです。

## 自己紹介 Ruby編
https://paiza.jp/works/mondai/self_introduction/self_introduction__1

自分の回答
“`ruby:qiita.rb
puts “name: 太郎”
puts “language: Ruby”
puts “hitokoto: よろしくお願いいたします”
“`

## 1つのデータの入力 Ruby編
https://paiza.jp/works/mondai/stdin/stdin_1

自分の回答
“`ruby:qiita.rb
input = gets.chomp
puts input
“`
– chomp
文字列末尾に入っている改行コードを削除するメソッド

## 3行のデータの入力 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

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

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

元記事を表示

OTHERカテゴリの最新記事