Ruby関連のことを調べてみた2023年02月18日

Ruby関連のことを調べてみた2023年02月18日

【Ruby】式展開

# はじめに

Railsなどを中心に勉強中のエンジニア初心者が他の記事を参考にしたり、実際に実装してみたりして、アウトプットの一環としてまとめたものです。
間違っていることもあると思われるので、その際は指摘いただけると幸いです。

# 文字列の結合

rubyの文字列の結合は以下の通りで、文字や数字を「`+`」で結合することができる。

“`ruby
name = “太郎”
put “私の名前は” + name + “です。”
>私の名前は太郎です。

year = 2000
put year + “年生まれです。”
>2000年生まれです
“`

# Rubyの式展開

“ダブルクォーテーション”で囲まれた文字列の中に式を記述することができ、プログラムが実行された際にその式が評価され、その結果を文字列の中に展開することができる。rubyでは文字列の中に式を記述するときは`#{}`を用いる。

### 記述例

“`ruby
name = “太郎”
put “私の名前は#{name}です。”
>私の名前は太郎です。

year = 2000
put “#{year}年生まれです

元記事を表示

『ABC081A Placing Marbles』AtCoderをRubyで解説!

# 正解の解答例
“`
s1,s2,s3 = gets.split(“”).map(&:to_i)

puts s1 + s2 +s3
“`

問題の入力例で、1桁の数字をスペースを空けずに入力するよう指定されているため、split(“”)としている。
1桁の数字なら例えば101と入力画面で入力すれば[1,0,1]の配列として作成可能。その後mapメソッドで数値オブジェクトに変換。

あとはputsで合計を出力して終わり!

# おまけ
出力でprint “#{}”を使用している方がいらっしゃったので念の為確認。
puts p は改行があり
printは改行がない

ちなみにpメソッドはオブジェクト情報も出力される。(文字列なら””に囲まれた状態で、数値ならそのまま出力される。)

■参考元

【Ruby超入門】print、puts、pの違い

元記事を表示

Why Ruby on Rails Training is Essential for Web Developers

![ruby-on-rails-igmguru_619772196_xl.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3131492/c82fb577-0bcb-7da2-3293-c319fd2298a8.jpeg)

Ruby on Rails (RoR) is a popular web application framework that allows developers to build high-performance and scalable web applications with ease. It is a widely used framework in the web development industry, and many popular websites such as Airbnb, GitHub, and Shopify a

元記事を表示

Rubyを使おうとした時のエラー対応

# 初めに
今回は自分がRubyをAndroid Studioで使おうとした時に起こったエラーへの対応を紹介していこうと思います
### 本文
今回は`.bash_profile`がないと言われた時の対応を紹介していきます
まず、必要なフォルダ直下で下記のコマンドを打ちます
“`terminal: bash_profileの作成
vi .bash_profile
“`
そうすると、`.bash_profile`というファイルが作成されるので`I`キーを押して入力モードにし、下記を入力します
“`terminal: bash_profileの中身の設定
eval “$(rbenv init -)”
“`
入力が終わったらエスケープキーを押し入力モードを終了した後に`:wq`を入力して保存して終了します
最後に下記のコマンドを打ち込めば終了です
“`terminal: bash_profileを参照するように設定
source ~/.bash_profile
“`
### 最後に
今回は、自分が詰まってしまっていた部分を備忘録程度に紹介していきました
どなたかのお役に立てれば幸

元記事を表示

Capistrano自動デプロイ時のブランチが見つからないエラー

# エラー内容
Capistranoを使用して自動デプロイコマンド
`bundle exec cap production deploy`
を実行したところ、以下のようなエラーが発生。
“`ruby:エラーメッセージ
git archive master
fatal: not a valid object name: master
“`
1行目ではGitのmasterブランチ
2行目では「master」という名前のオブジェクトが無効とのこと。

# 解決まで
おそらく、「master」というブランチが無効(もしくは存在しない)ために
エラーが発生していると想定。

また、現在のGithubにおける大元のブランチが「main」となっているため、
ブランチ名を「master」にするか、Capistranoが検索するブランチを「main」に
変更すれば解消できるのでは、と考え調べたところ、

“`ruby:config/deploy.rb
set :brach, “main” #末尾に記載
“`
上記のように追記することで、Capistranoで検索するブランチを「main」に
変更

元記事を表示

【Ruby on Rails】選択ボックスをモデルの情報を元に生成する方法

# 前提条件
– Ruby 3.1.0
– Rails 7.0.4

# やりたいこと
選択ボックスをvegetableテーブルの情報を元に生成したい。

### vegetableテーブル
|id |name |
|:—|———–|
|1 |たまねぎ |
|2 |じゃがいも |
|3 |にんじん |

# 方法
### collection_selectメソッドを使う
“` ruby:vegetable_controller.rb
def new
@veges = Vegetable.all
end
“`
“` ruby:new.html.erb
<%= f.collection_select(:name, @veges, :id, :name) %>
“`
第一引数:フォームの対象モデルの中の該当する属性名を設定する。
第二引数:選択肢の情報として提供する。
第三引数:フォームのvalueを設定する。
第四引数:optionタグ内のテキストを設定する。

# 結果
選択ボックスをvegetableテーブルの情報を

元記事を表示

Ruby if, else問題

# if, else問題

条件分岐を利用して、プログラムを作成していきます。
内容は下記の通りです。
ECサイトのポイント付与サービスを考えます。
購入金額が999円以下の場合、3%のポイント
購入金額が1000円以上の場合、5%のポイント
このように付与されるポイントを出力するメソッドを作りましょう。

ただし誕生日の場合はポイントが5倍になります。
誕生日の場合はtrue, 誕生日でない場合はfalseで表します。
また、小数点以下をすべてのポイント計算が終わったあとに切り捨てましょう。

“`ruby:模範解答
def calculate_points(amount, is_birthday)
if amount <= 999 point = amount * 0.03 else point = amount * 0.05 end if is_birthday point = point * 5 end puts "ポイントは#{point.floor}点です" end # 呼び出し例 calculate_points(50

元記事を表示

変数hashを作成するためのコード

初心に返り復習、備忘としてアウトプットします!

“`ruby:問題
# 下記のメソッドを実行した時に実行結果のように表示されるような変数hashを作成せよ。
puts puts hash.keys
puts hash.values

# 実行結果
one
two
three
1
2
3
“`

“`diff_ruby:解答
# 自身の解答
– hash{“one”:1, “two”:2, “three”:3}
# 模範解答
+ hash = { one: 1, two: 2, three: 3 }
“`

あーやってしまってる。。
=忘れてる。。。

ダブルクォーテーションは文字列に使用しているのであっても実行結果は同じに。
“`ruby:実行結果
irb(main):009:0> hash={“one”:1, “two”:2, “three”:3}
=> {:one=>1, :two=>2, :three=>3}
irb(main):010:0> puts hash.keys
one
two
three
=> nil
irb(main):011:0> puts ha

元記事を表示

【Ruby3】rbs コマンド使い方【RBS】

# はじめに

RBS は Ruby3 で追加された、Ruby の型を宣言する言語です。
この記事では、その RBS 言語で書かれた型定義を処理するためのライブラリ `rbs` gem の `rbs` コマンドの使い方についてまとめてみました。

以下の環境で動作を確認しました。

“`
$ ruby -v
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x86_64-linux]
$ rbs -v
rbs 2.8.2
“`

# `rbs` コマンドの使い方

以下コマンドでインストールできます。

“`
$ gem install rbs
(省略)
$ rbs -v
rbs 2.8.2
“`

`rbs` または `rbs help` で ヘルプが出ます。

“`
$ rbs help
Usage: rbs [options…] [command…]

Available commands: ast, annotate, list, ancestors, methods, method, validate, constan

元記事を表示

Ruby環境構築&バージョン管理(Mac)

MacでのRuby環境構築についてまとめます。
また、開発を行う上で、複数のバージョンを管理したい時があると思うので、Rubyのバージョンを簡単に切り替えてくれるツールであるrbenvについても記載しています。
ちなみにMacでは元からRubyが入っています。

# Rubyインストール手順
– 1, Homebrewをインストールする
– 2, Homebrewを用いてrbenv(アール・ビー・エンブ)をインストールする
– 3, rbenvを用いてRubyをインストールする

## 1,Homebrewをインストールする
下記コマンドをターミナルで実行
“`
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`
インストールされているかの確認
“`
brew -v
“`
下記のように出ていれば問題ないです。バージョンの部分はインストールした際のバージョンで異なります
“`
Homebrew 4.0.0
“`

## 2, H

元記事を表示

ERROR: `GLIBC_2.29′ not found |Ruby AWS SAM で Nokogiri 使用時の回避方法

AWS SAMでLambdaを動かそうとした時、以下のエラーが出たため修正した。
M1だと発生するのかもしれない。

“`zsh
$ sam local invoke HelloWorldFunction –event events/event.json
Invoking app.lambda_handler (ruby2.7)
Local image was not found.
Removing rapid images for repo public.ecr.aws/sam/emulation-ruby2.7
Building image…………………………………………………………………………………………………………………………………………………………………………………………………….

元記事を表示

takara awesome title

Your article starts here.

try github to qiita contents.

元記事を表示

macOS12.5にcocoapodsをインストールするときのエラー対処(‘ruby/config.h’ file not found)

# 環境
MacOS : Monterey 12.5
Xcode : 14.2

# cocoapodsをインストールする
~~~
sudo gem install cocoapods
~~~

# エラー内容

次のようなエラーが出ました。

~~~
Building native extensions. This could take a while…
ERROR: Error installing cocoapods:
ERROR: Failed to build gem native extension.

current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf2

元記事を表示

ABC086A Product AtCoderの問題をRubyで解説

# 正解の解答例
“`
a,b = gets.split.map(&:to_i)

if a * b % 2 == 0
puts “Even”
else
puts “Odd”
end
“`

1行目では入力、入力値を配列に入れる、配列の入力値を数値オブジェクトに変換する処理を行なっています。
他の解答例でsplit(” “)と解答している方もいらっしゃいますが、splitの記述だけでスペースは区別できるようです。

if文ではaとbの積を2で割ることで余りが出るか判別しています。
2で割り切れればEvenを出力します。
そうでなければ奇数なのでOddを出力します。

■参考サイト
https://leokun0210.hatenablog.com/entry/2019/08/25/162033

元記事を表示

Rails7でDaisyUIを使ったアプリ作成の環境構築

## ■ DaisyUIとは

DaisyUIは、Vue.js、React、Alpine.jsのためのオープンソースのUIコンポーネントライブラリです。DaisyUIは、簡単にカスタマイズできるデザインシステムを提供し、アプリケーションの開発を迅速化することを目的としています。

DaisyUIには、ボタン、カード、フォーム、アラート、モーダルなど、Webアプリケーションでよく使用されるUIコンポーネントが含まれています。また、カラーパレットやフォントファミリーの設定などのデザインシステムを提供することで、開発者がコンポーネントのスタイリングを簡単にカスタマイズできるようにしています。

DaisyUIは、無料で利用でき、さまざまなプロジェクトで使用されています。Vue.js、React、Alpine.jsのいずれかのフレームワークを使用している開発者は、DaisyUIを利用して、簡単かつ迅速にWebアプリケーションの開発を進めることができます。

## ■プロジェクトを作成する

“`ruby
rails new myapp -j esbuild –css tailwind

元記事を表示

値がnilになる可能性があるか調べたい

# ある値がnilになる可能性があるか知りたい時
レビューをしてもらっていると、
「これってnilになる可能性ありますか?」と聞かれることがある。
突然の質問に、困惑したのでその調べ方を残しておく。

# schema.rbを確認する
ここにはDBの制約が書かれているので
知りたい値に “null: false“ があればdbにnullが許容されないということがわかる。
# modelを確認する
ここにはmodelのバリデーションが書かれているので
知りたい値に“exclusion: { in: [nil] }“とか定義してあればnullが許容されないということがわかる。

# おわり
よきコードを書きたい。

元記事を表示

ruby ぼっち演算子について try try! &. &[] あと||も

# ボッチ演算

`&.`は`try`の省略形と考えて頂いてOKです。
tryはNilClassのメソッド
レシーバがnilクラスの時に動く

レシーバは簡単にいうと`.`の左側のことをレシーバっていいます。
foo`.`bar
レシーバ`.`メソッド
fooがレシーバ barがメソッド

参考 [github_ruby_NilClass](https://github.com/rails/rails/blob/f33d52c95217212cbacc8d5e44b5a8e3cdc6f5b3/activesupport/lib/active_support/core_ext/object/try.rb#L135)

# 使い方

#### 普通のボッチ演算子の使い方

使用前
“`
p nil.hogeee

undefined method `hogeee’ for nil:NilClass (NoMethodError)
“`

使用後
“`
p nil&.hogeee

nil
“`

#### arrayとかhashで使うとき

使用前
“`
arraydesu =

元記事を表示

Ruby if, else問題

# if, elseを使ってプログラムを作成します

条件は以下の通りです。
– 条件1:メソッドの実引数として「1以上の正の整数」を3つ用意し、それぞれを仮引数a,b,c としてnumメソッド内で使用する
– 条件2:第一引数と第二引数は足し算をし、変数abに代入する
– 条件3:第三引数が3以下の場合は変数abを第三引数の値で割り、結果を出力する
– 条件4:第三引数が4以上の場合は変数abを第三引数の値で掛け、結果を出力する
※小数点以下の出力は考慮しなくてかまいません。

模範解答
“`ruby
def num(a, b, c)
ab = a + b
if c <= 3 puts ab / c else puts ab * c end end # 呼び出し例 num(1,5,3) ``` ```:ターミナル 2 # ab = 1 + 5 = 6 # 6 / 3 = 2 ``` ## 解説 条件2に、第一引数aと第二引数bを足したものを変数abに代入するとあるので、その式を2行目に記述します。 if文には第三引数cが3以下の

元記事を表示

[PracticeA][Welcome to AtCoder]を解いてみた!RubyでAtCoderの解説

# 正解したコードの解答例
“`
a = gets.to_i
b,c = gets.split(” “).map(&:to_i)
s = gets.chomp

puts (“#{a+b+c} #{s}”)

“`
# 解説
1行目a = gets.to_i
のgetsメソッドでは、ユーザーがキーボードで入力した値を文字列として取得しています。
問題文は数値での出力が求められるためto_iメソッドで数値化してあげます。

2行目b,c = gets.split(” “).map(&:to_i)
b,cで入力したコードをsplitメソッドで指定した区切り文字(” “)で分割し、配列で返します。
b cの入力時にスペースをあけるため、ここでsplit(” “)が作用して文字列の配列が作成されます。
このままでは配列の中身は文字列の状態なので.map(&:to_i)を使用して配列の中身を全て数値オブジェクトに変換します。

3行目のchompは改行をなくすメソッドです。getsのみだと改行が入るようになっています。

最後、計算結果を出力しています。

以上、PracticeAの解説でし

元記事を表示

【Rails】3種類のラベルのうち1つは必ず選択(バリデーション)

## はじめに
現在webアプリ制作に携わらせていただいている中で調べて学んだことをアウトプットしていきたいと思います。
よろしくお願いいたします。

## 開発環境
Rails 6.0.3
Ruby 3.0.1

## 参考記事
[Active Record バリデーション](https://railsguides.jp/active_record_validations.html)
[Railsで特定の条件下で走るバリデーションを作りたい](https://qiita.com/tmzkysk/items/a0c874715ba38eb23350)

## どうしたいか
新規質問投稿時に、3種類のタグから当てはまるタグを複数選択できるようになっているが、`「投稿時にタグを1つは必ず選択させる」`ようなバリデーションを構築したい。

## ER図
questionsテーブルにlabelsテーブル、categoriesテーブル 、kindsテーブルがそれぞれ多対多の関係で紐づいています。
![Qiita.png](https://qiita-image-store.s3.ap-nort

元記事を表示

OTHERカテゴリの最新記事