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

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

herokuでClearDB MySQLからJawsDB Mariaに置き換え

#Clear DBからJAWSDB mariaに置換

Clear DB Mysqlの無料枠が昨年廃止に伴い、JAWS DB Mariaに置き換えしました。

1. DBのバックアップを取得

https://sequelpro.com/ を使用してDBに接続

“`bash
heroku config
=== sevens-api Config Vars

DATABASE_URL: mysql2://user:pass@shichimi.com:3306/db
DB_HOSTNAME: shichimi.com
DB_NAME: db
DB_PASSWORD: pass
DB_PORT: 3306
DB_USERNAME: user
JAWSDB_MARIA_URL: mysql://user:pass@shichimi.com:3306/db
LANG:

元記事を表示

Railsの form_with を用いた投稿の作成と編集の処理の流れ② pryでインスタンスの中身も確認。

:::note warn
現在、プログラミングスクールにて、主にRubyやRuby on Railsを勉強している者です。この記事を通して少しでもお役に立てられますと幸いです。また、説明不足や誤りがございましたら申し訳ございません。
:::

この記事は、前回の「Railsの form_with を用いた投稿と編集処理の流れ① pryを使用してインスタンスの中身も確認してみる。」の続きとなります。

https://qiita.com/zakkiiy/items/933dceb2982b4ac8684d

今回は主に、form_withヘルパーを用いた編集処理の流れについてみていきたいと思います。

## 前提
– MVCの流れや一対多の関連付けについての多少の理解。
– Sorcery gemを使用しているため、current_userメソッドを使っています。
– 機能は最低限となっているため、パーシャル(フォーム用)等は使用しておりません。
– ルーティングは resources :posts を使用しており、標準的なRESTfulルートが生成されています。

“`ruby:a

元記事を表示

Progate +α メモず【Ruby on Rails ⑥⑦】

# はじめに
Ruby on Rails学習レッスン⑥は⑤の応用だったので、特に新しい要素はなし。
細かなミスを繰り返しながら学びました。
⑦はユーザー画像の表示!ひそかに楽しみにしてたところ🥳

# メモず
## `$ rails g migration file_name`
マイグレーションファイルのみを作成。
## マイグレーションファイルの書き方
“`rb
class MigrationName < ActiveRecord::Migration[5.0] def change method_name :table_name, :column_name, :data_type end end ``` Ruby on Railsのマイグレーションファイル内の`change`メソッドは、データベーススキーマの変更を定義するために使われます。このメソッド内で行うことができる代表的な操作は以下の通りです。 ### 代表的なメソッド #### テーブルの作成 ```ruby def change create_table :users do |t| t.string

元記事を表示

【Ruby】例外処理について掘り下げて考えた

## 自己紹介
はじめまして、はると申します。完全異業種からのエンジニア転職を目指して学習をしています。

## 概要
Rubyの基礎を学習しているとき、いくつか理解が難しかったところがありますが、そのうちの一つが「例外処理」でした😣
そのまま苦手だなと思いながら放置してしまっていたので、今回改めて学習しました。

## 注意
私は前職が完全異業種であり、英語も苦手で、スクールに入って初めてプログラミングに触れました。
そんな自分が理解しづらかった部分を、同じように初めてプログラミングの概念に触れた人に向けてまとめました。
自分の復習も兼ねて、超超噛み砕いて書いているため、周りくどい書き方になっている箇所もあるかと思います。

また、初学者のため、間違っている箇所もあるかもしれませんのでその際は教えて頂けると嬉しいです🙇

  
## 例外処理とは
『例外処理(れいがいしょり、英語: exception handling)とは、IT業界で用いられる専門用語で、ある抽象レベルにおけるシステムの設計で想定されておらず、ユーザー操作によって解決できない問題に対処するための処理である。』[1)

元記事を表示

三項演算子を利用せず、値がnilはnil / nil以外なら処理する方法

### モチベーション

ActiveRecordで深く潜った先の値に対して `nil` のときは `nil` 、そうでない時は値を用いて処理する場合、 `if` を用いると冗長になるし、三項演算子を利用するとめちゃくちゃ長くなる 😢

“`ruby
# userに紐づく、最後の賃貸契約の契約月数を取得(契約月数はnullable)

user = User.first

# if
if user.lease_contract.last&.period_months
p “#{user.lease_contract.last&.period}ヶ月”
else
nil
end

# 三項演算子
p user.lease_contract.last&.period_months ? “#{user.lease_contract.last&.period}ヶ月” : nil
“`

何かスッキリ書く方法ないかな? 🤔

### 結論

`[then](https://docs.ruby-lang.org/ja/latest/method/Object/i/then.html)` を利

元記事を表示

dependabot によるライブラリのアップデート手順書

## 個人用作業手順書
### 手順1_対象のGemを調査する(大事)
– RUNTIME依存とDEVELOPMENT依存性チェック(**Rubyの場合**)
– [RubyGem](https://rubygems.org/)ドキュメントから対象Gemを検索する
– 依存Gemのバージョンが足りないことをチェック、足りない場合アップデートできません
– 例:↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658393/87e08951-6801-6275-2e41-9c483032500d.png)

– バージョン差分確認:
– バージョン差が特に大きいの場合、確認作業は重くになるので、一つだけアップデートしても問題ないです
– 変更履歴チェック:
– ChangeLogとCommitsをベースにチェック
– ![image.png](https://qiita-image-store.s3.ap-northeast-

元記事を表示

seleniumのsystem specでheadless chromeを利用している際, Chrome120に更新されてから通らなくなった原因の解消

ruby3.1
rails 7.0
selenium-web-driver 4.16
capybara 3.39.2

結果としては、headless chromeを使う際のオプション名が原因でbrowserNameがchromeとなるはずがchrome-headless-shellになっていた。
chromeはヘッドレスモードが2種類あり、古い方がchrome-headless-shellとなるようだ。
chrome-headless-shellは別で専用のバイナリが公式から用意されていて、そちらをDLして使う事も可能らしい。

修正前
“`ruby
Capybara.register_driver :chrome do |app|
options = Selenium::WebDriver::Options.chrome
options.args << '--headless' options.args << '--no-sandbox' options.args << '--disable-dev-shm-usage' end ``` 修正後 ```ruby

元記事を表示

Progate +α メモず【Ruby on Rails ④⑤】

# はじめに


Ruby on Railsの力を実感してきた今日この頃です。
MVCの分離とか、メソッドがちゃんと独立して

元記事を表示

【Rails】ERB Formatter/Beautifyがうまく動かない

VSCodeの拡張機能であるERB Formatter/Beautifyをインストールした時にエラーで少しハマったので、同様の問題で悩んでいる方のために解決策を共有したいと思います。
環境はmacM2です。

## エラー
– VSCodeの拡張機能からインストール
– Gemfileに gem ‘htmlbeautifier’ を追記して bundle install
これで動くはずなんですが、フォーマットを実行してみると以下のようなエラーが

“`
Error occurred while formatting: Command failed with exit code 1
“`
“`
Failed with exit code: 1. ‘/Users/hogehoge/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/htm
lbeautifier-1.4.2/bin/htmlbeautifier:12:in `rescue in beautify’:
Error parsing standard input: invalid

元記事を表示

ブロックについて

# はじめに

#### ※以下の内容には誤りが含まれる可能性があります

# ブロックとは何か

ブロックとはイテレーターを実装したものである。イテレーターとはオブジェクトの要素や値を
1つずつ取り出して処理することです。

# ブロックの使い方

“`
3.times do
puts “Hello Ruby!”
end
“`

3というリテラルは整数クラスのオブジェクト(正確にはFixnumクラスのオブジェクト)として扱われるので、timesメソッドの後のdo~endの間に書かれている文が3回実行される。

その他、do~endの代わりに{ ~ }を使ってもいい。
“`
$ ruby sample.rb
Hello Ruby!
Hello Ruby!
Hello Ruby!
“`
プログラムを実行すると、timesメソッドの働きにより、Hello Ruby!が3回表示される。

この段階では、timesメソッドによる繰り返し処理を行っただけで、ブロックの機能を全て使っているわけではない。
Integerオブジ

元記事を表示

Railsの form_with を用いた投稿の作成と編集の処理の流れ① pryを使用してインスタンスの中身も確認してみる。

:::note warn
現在、プログラミングスクールにて、主にRubyやRuby on Railsを勉強している者です。この記事を通して少しでもお役に立てられますと幸いです。また、説明不足や誤りがございましたら申し訳ございません。
:::

## 前提
– MVCの流れや一対多の関連付けについての多少の理解。
– Sorcery gemを使用しているため、current_userメソッドを使っています。
– 機能は最低限となっているため、パーシャル(フォーム用)等は使用しておりません。
– ルーティングは resources :posts を使用しており、標準的なRESTfulルートが生成されています。

“`ruby:app/config/routes.rb
Rails.application.routes.draw do
resources :users, only: %i[new create]
resources :posts
end
“`

“`
# 今回使用されるルーティング

posts_path GET /posts(.:format) posts#in

元記事を表示

大文字小文字変換ツール

大文字小文字変換ツールを作成しました

“`Ruby
#大文字に変換
def oomoji(msg)
msg1 = msg.upcase
return msg1
end

#小文字に変換
def komoji(msg)
msg2 = msg.downcase
return msg2
end
# 文字列の出力
def disp(msg)
puts msg
end

name = ‘test’
disp(name)
name1 = oomoji(name)
disp(name1)
name2 = komoji(name1)
disp(name2)
“`

元記事を表示

Progate +α メモず【Ruby on Rails ②③】

# はじめに
今回はデータベース周りが主軸……と思ったけど、結果的にいろいろと。
なんかいつの間にRails②を終えて③に入ってました。怖。
なのでまとめて投稿します。

今回も、気になる見出しがあれば見ていただけると嬉しいです!
# メモず
## `@変数`:Controllerとviewからアクセスできる
なんで`@`つけると参照できるの?別ファイルじゃないの?
→個人的には`html`と`script`の関係性に置き換えて納得しました。

RUNTEQだと `html`と`css`の関係がわかりやすいでしょうか。
– `html`の中に`css`がある(`stylesheet = css`)
– `html`で`class`や`id`をつけることで、`css`からもアクセスできる
(`css`の場合はより広く、より深くアクセスできますが)
– `@`をつけてない変数とは、`css`でいうところの`class`も`id`もない`html要素`のイメージ
(繰り返しになりますが、`css`だとタグでもアクセスできる。まあイメージということで)

## マイグレーションファイル

元記事を表示

【2024/01/14】今日のキャッチアップ

## NotionSwiftを使ってアプリ作ってみた話

https://zenn.dev/maeken/articles/c976a92e50d02d

習慣トラッカーの入力を簡単にするアプリ。自分は今近いことを有料のアプリ(TickTick)で利用しているため、自分で便利なタスク・習慣管理ツールを作ってみたいと思う気持ちが強まった。

## VSCode の ruby-lsp 拡張でコードジャンプができるようになるまでにやったこと

https://zenn.dev/chihaso/articles/f1bda1af64324b

本記事通りに「misogi.ruby-rubocop」をアンインストールしたらコードジャンプできるようになった。神記事。

## tRPC入門―型安全なWebアプリケーションを効率よくつくる

https://zenn.dev/typebase/books/trpc-introduction

サッとWebアプリケーションを作りたいと思っていて、TypeScriptとNext.jsにコミットしている自分が参考にすべき設計だと思っている。導入事例は現在進行

元記事を表示

rails バリデーション機能について

## 結論

validation:検証

オブジェクト(Hoge.newなどで生成されたものなど)がデータベースに保存される(newだけでは保存されない、save,
criate,updateメソッドで初めてデータベースに保存される)前に、本当にデータベースに保存していいのか検証してくれる機能

## とてもシンプル

“`app/models/hoge.rb
class Hoge < ApplicationRecord validate :カラム名,presence: true end ``` presence: 出席する = 空文字を防ぐ ## もしユーザーが空文字を入力していたら? ``` nil => false
“`
と判断される。

## バリデーションヘルパー
目次.2 で詳細が記載されています。
https://railsguides.jp/active_record_validations.html

以上です。

元記事を表示

名前の由来 機能 (初心者向け)

2022/07/13 編集中

私はプログラミング初学者です。
学習する度に、新しい知識の情報量に圧倒されます。
とくに学習を始めた最初の頃は意味が全く分からない単語も多く、学習に対して強い抵抗感を感じました。。
なので、初学者向けに少しでも抵抗感を軽減することができればと思い、機能と名前の由来について記事にすることにしました。

# Ruby
元々、6月に生まれたpealというプログラミング言語が存在していた。pealの発音は6月の誕生石である真珠(Pearl)と同じである。
Rubyは7月に生まれた。「Perlに続く」という意味で、7月の誕生石のルビーから名付けられた。

# gem
RubyGemsが公開しているRubyのパッケージのこと

# Rails
Rubyなどの言語を使って簡単にアプリなどを制作できるような枠組みである。お膳立てという意味合いで「レール」と名付けられた。
RailsでWebページを装飾するには?

# rbenv

# パッケージ
関連するさまざまな要素を1つにまとめたものや、市販・出来合いの製品などの意味で使われる。 特定の業務用に作成されたプログラム

元記事を表示

sidekiqに触れてみた

# はじめに
業務の中で非同期処理を行いたいタスクがあり、システムにsidekiqを新しく導入することで実装しました。
改めて復習も兼ねて記事を書くことにしました。

# 実装

### sidekiq用のサーバーを構築
“`docker-compose.yml
sidekiq:
uild:
context: .
dockerfile: Dockerfile
volumes:
– .:/app
env_file:
– .env
ports:
– 3000:3000
command: bundle exec sidekiq -C config/sidekiq.yml
“`

### GemFileにsidekiq追加し、bundle install実行
“`ruby:GemFile
gem ‘sidekiq’
“`

### sidekiqの各種設定
1\. アダプターをSidekiqにする
ActiveJobをsidekiqと連携させる。
“`config/applicatio

元記事を表示

X(Twitter)のブックマーク画像を自動で収集・保存するRubyスクリプトを作った(前編)

## はじめに
X(Twitter)のアカウントを削除する時にネックとなるブックマークに保存した画像の保存を一括でできるようにするスクリプトが欲しかったので作りました。
api有料化対策として作りました。
~~Xは早くブックマークを一括で出力できるようにしてくれ~~~
python版作ったりしてます。
後編をお待ちください

## スクリプトの概要

このスクリプトは、Selenium WebDriverを使用してX(Twitter)にログインし、ブックマークページに移動して画像のURLを収集します。収集したURLは`tbu.txt`に保存され、後で画像としてダウンロードすることができます。

## 開発の経緯
今年はさぼらずプログラミングに向き合いたいと思ったからです。
今まではさぼってしっかりと向き合っていなかったので今年こそはしっかりやろうと思っています。
今やっている地震のプロジェクトも少し飽きてきたので気休め程度に作ろうと思いました。
## なぜ投稿したのか
個人として使っているインスタでこのスクリプトを書いてることを投稿したらそれなりに反響があったのでしっかり書いて公開しよ

元記事を表示

paizaラーニング解答: 累積和メニュー[Ruby]

# 累積和メニュー
https://paiza.jp/works/mondai/prefix_sum_problems/problem_index?language_uid=ruby
## STEP: 1 区間の和 1
“`ruby
a = [1, 5, 9, 7, 5, 3, 2, 5, 8, 4]
s = [0] * 11
(0..9).each do |i|
s[i + 1] = s[i] + a[i]
end
puts s[8] – s[2]
“`

## STEP: 2 区間の和 2
“`ruby
a = gets.split.map(&:to_i)
s = [0] * 11
(0..9).each do |i|
s[i + 1] = s[i] + a[i]
end
puts s[8] – s[2]
“`

## STEP: 3 区間の和 3
“`ruby
x, y = gets.split.map(&:to_i)
a = gets.split.map(&:to_i)
s = [0] * 11
(0..9).each do |i|
s[i +

元記事を表示

【Rails】小学校教員、初心者が現場で使える時間割アプリを作った話

# 制作背景

元記事を表示

OTHERカテゴリの最新記事