Ruby関連のことを調べてみた2022年09月13日

Ruby関連のことを調べてみた2022年09月13日
目次

Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較

# Python

https://qiita.com/taashi/items/07bf75201a074e208ae5

# Ruby

https://qiita.com/shiGira/items/44586bdc48c06e00d99f

# PHP

https://qiita.com/aic0o/items/91ca1ddc1fc6e025286f

# Java

https://qiita.com/takahirocook/items/ece64146015f702d0a83

# JavaScript

https://qiita.com/furusin_oriver/items/f030d1eaa9e7b54233c3

# Perl

https://perlzemi.com/

元記事を表示

herokuビルドでアプリがcrashしてしまった時の解決例

herokuにデプロイした際にビルドは成功したのですが、WEBページを開くと下記の画面になってしまいました。
1週間ほど嵌ったので備忘録として記載します。?
参考にしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2534058/3e3bc773-05ce-3a65-2112-ec106f64817d.png)

# 起点 「Application error」
ビルドが正常に終了したのに、WEBページに「Application error」画面が表示され、「heroku logs –tail」でログを確認してね!とあるのでターミナルで確認する。
以下のログが表示されていた。

“`zsh:heroku logs –tail
2022-09-12T03:32:48.194301+00:00 heroku[web.1]: Starting process with command `npm start`
2022-09-12T03:32:49.916104+00:00

元記事を表示

Ruby 3.2 で Struct がチョイ楽になる?

Ruby で構造体的なデータを表すクラスにはいろいろありますが,その代表格は,やはり組込みクラスの Struct ですよね。

たとえば,猿への給餌計画を表す `ApeFeed` クラスはこんなふうに:

“`rb
ApeFeed = Struct.new(:morning, :evening)

proposed_ape_feed = ApeFeed.new(4, 3)

p proposed_ape_feed.morning # => 4
p proposed_ape_feed.evening # => 3
“`

しかし,どうも私は Struct を多用する気になれないでいます。
理由の一つは,`Struct.new` が Struct のインスタンスではなくサブクラスを返す,という謎仕様。
えっと,クラスに `new` したらインスタンスを生成して返すでしょ,ふつう。
なぜこんなワケの分からない仕様なのか理解に苦しみます。

もう一つは,上記のようなコードだと,`ApeFeed.new(4, 3)` の引数のどっちがどっちかすぐ分かんなくなっちゃうことなんですよね。
やっぱ

元記事を表示

Ruby 3.2 で Set が組込みクラスになる?

Array クラスの陰に隠れて存在感の薄い Set クラスですが,みなさん使ってますか?

Set クラスは文字どおり数学の「集合」を表すクラスです。標準添付ライブラリーなので(組込みではないので),`require` しないと使えません。

Set の影が薄い理由は,組込みクラスでないことに加え,集合にまつわるだいたいのことが Array で代用できてしまう,ということがあると思います。
これは,Array が「大クラス主義」的に設計されていて,他言語なら分けて設計するようなさまざまなデータ型の機能を Array に詰め込んでいるからですね。

しかし,Set が「要素の重複が無いことが確実」であるのに対し,Array で集合を表すと要素の重複があるかもしれないので,最後に `uniq` をかます必要があったりします。
やはり集合のようなデータは Set クラスで表すのがよさそうです。
でも `require` が面倒。

なのですが,どうやら Ruby 3.2 で Set が組込みクラスになるようです。
https://www.ruby-lang.org/en/news/2022/

元記事を表示

times文を用いた繰り返し処理問題

問題
times文を使って、以下のようにターミナルに出力されるプログラムを書く。

1回目の繰り返し
2回目の繰り返し
3回目の繰り返し
4回目の繰り返し
5回目の繰り返し
6回目の繰り返し
7回目の繰り返し
8回目の繰り返し
9回目の繰り返し
10回目の繰り返し

自分の答え
10.times do|i| 
  puts “#{(i+1)}回目の繰り返し”
end

正解
10.times do|i| 
  puts “#{i+1}回目の繰り返し” 
end

修正が必要な点
ブロック変数+1の式展開は、()が不要。

式展開
文字列の中に式を入れることができる機能。
式展開する場合は、文字列を””で囲む必要があり、’’で囲んでも機能しない。

元記事を表示

rails 7でdevice を使用するとusersモデルに独自で追加したカラムが保存されない。

先日の[watnow](https://github.com/watnows)のハッカソンでアプリを開発をした際にRails 7.0.3を利用して開発しました。
ハッカソンで作ったアプリでログイン機能をrails7かつdeviceで実装するという選択をしたところハッカソンにおいて貴重な2時間を失ってしまいました。その際に得た知識が誰かの役にたてばなと思い記事にさせていただきました。

### 環境
Rails 7.0.3
Ruby 3.1.2

## 状況
Rails 7でdeviceでアカウント登録する際に独自に追加したカラムが保存されないという状況にハマりました。form_withを使用して実装しており、deviceが用意してくれているemailやnameといったカラムは保存されます。

## エラー内容
deviceを使用してuserをcreateすると以下のようなエラーが出ました。
“` terminal:ログ
Started POST “/users” for ::1 at 2022-08-07 16:52:12 +0900
Processing by Devise

元記事を表示

[Rails]selectフォームにenumのリストを表示する2つの方法

すんごい基礎的な内容なのですが、2通りのやり方に出会ったので整理したかったのと、地味なとこでハマったので備忘録。

## やりたいこと
Postモデルにstatusというenumがあるとする。

“`ruby
class Post < ApplicationRecord enum status: { active: 10, inactive: 20 }, _prefix: true end ``` これをこういう感じ↓で表示したい。 ![スクリーンショット 2022-09-12 12.09.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/b0e3c242-c7da-f570-f417-f87c24cf5242.png) htmlはこう。ブラウザで見える文字列とvalue属性を渡してあげたい。 ```html

OTHERカテゴリの最新記事