- 1. RubySilverに合格できたお話
- 2. polymorphicと中間テーブルの違い
- 3. Rails 7.2 をちょこっと試す (insert_all returning オプション編 (ただしMariaDBに限る))
- 4. 【Rails7】to_sでwrong number of arguments (given 1, expected 0) (ArgumentError)が発生する
- 5. Rspec WrongScopeError発生
- 6. 【React導入】既存のRailsアプリにReactを導入する
- 7. i18nの設定がconfig.i18nにまとまってconfig.action_viewは非推奨となった
- 8. 範囲オブジェクト
- 9. 君の名は?(配列でよく見かけるこいつ→
- 10. VBのWith…End With ステートメントをRubyで実現するには
- 11. Railsでポリモーフィック関連付けを使用した柔軟なモデル関連付けの実装」
- 12. 【Rails】You need to supply at least one validation エラーが発生したら
- 13. 【ActiveRecord】length vs size
- 14. Railsで共通パーツの一部をページごとに変更する方法
- 15. Rubyでデザインパターン (6) Prototypeパターン
- 16. 【初心者向け🔰】CodeWars【学習サイト】
- 17. 【Ruby】最近発見した便利な記述方法メモ
- 18. [Rails]あ…ありのまま、今起こった事を話すぜ!「おれはorder(created_at: :asc)と実装したと思ったら、created_at descのSQLが実行されていた」
- 19. Rubyで連分数展開のプログラムを書いてみた
- 20. マイグレーションファイルの修正、削除について
RubySilverに合格できたお話
## はじめに
初めまして、@jinta_02と申します。
未経験からエンジニアに転職して、早3ヶ月が経ちましたが、業務をする上で、「これ何してんだ?、どんな書き方?」と思おうことが多々あったので、RubySilverを受験してきました。
これから受験される方の参考になればと思ったので、受験記録を残します😀## スキルレベル
– エンジニア歴3ヶ月(未経験からWebエンジニア)
– 転職前に、10ヶ月ほどプログラミングスクール受講(主に、Ruby, Railsを学習)
– 以下のポートフォリオを作成できるレベル
[個人開発】服好き・カフェ好きのためのショップ検索サービス「服カフェ」をリリースしました](https://qiita.com/jinta_02/items/329abd44056277a17d739)## 受験のきっかけ
エンジニアに転職して実際にサービス開発に携わる中で、チームメンバーが書いているコードを理解できない部分があったので、もう少しRubyの文法だったりライブラリについて学ぶ必要があると感じたからです。また、学習するなら何か形に残るものにしたかったのと、R
polymorphicと中間テーブルの違い
polymorphicと呼ばれる、初めましての概念と出会ったので記録します。
polymorphic自体は理解したつもりだったのですが、中間テーブルの違いはなんなのかなと思った時に分からなかったので聞いてみました。以下本文
ポリモーフィック(polymorphic)と中間テーブル(join table)は、データベース設計において多対多の関係を扱うための異なるアプローチです。それぞれの違いと特徴を以下に説明します。
### ポリモーフィック(Polymorphic)
**定義:**
ポリモーフィック関連は、一つのモデルが複数の他のモデルに関連付けられる方法です。ポリモーフィック関連では、関連するテーブルに追加のカラムを使用して、関連付けのタイプを識別します。
**使用例:**
例えば、コメント(Comment)モデルが、記事(Article)や画像(Image)など、複数の異なるモデルに関連付けられる場合があります。この場合、ポリモーフィック関連を使用します。
“`ruby
# Migration to create comments table with pol
Rails 7.2 をちょこっと試す (insert_all returning オプション編 (ただしMariaDBに限る))
## はじめに
Rails 7.2 では、MariaDB で、`insert_all` に `returning` オプションが使えるようになりました。
MySQL では使えないので注意が必要です。
(PostgreSQL では、以前から `returning` オプションが使えます。)
## 環境
– Ruby 3.3.2
– Rails 7.2.0.beta2
– MariaDB 11.4.2
– MySQL 8.4.0## 準備
Bookモデルを作ります。
“`sh
$ bin/rails g model Book title
“`## MySQL での挙動
MySQL では `returning` オプションを使うとエラーになります。
MySQL に接続するように `config/database.yml` を修正して以下を実行します。
“`sh
$ bin/rails db:create db:migrate
“`Rails コンソールで `insert_all` を `:returning`実行するとエラーになります。
“`ruby
$ bin/r
【Rails7】to_sでwrong number of arguments (given 1, expected 0) (ArgumentError)が発生する
## はじめに
Rails7にアップデート中、to_sを使用している部分でエラーが発生したので、解消方法をまとめていきます。## 問題
エラー内容
“`ruby
date = DateTime.now
puts date.to_s(:db)`to_s’: wrong number of arguments (given 1, expected 0) (ArgumentError)
“`## 解決方法
to_sをto_fsに変更することで解消します。“`ruby
date = DateTime.now
puts date.to_fs(:db)
“`## 参考
https://scrapbox.io/ukuh1r8-86980398/Rails7%E3%81%8B%E3%82%89Active_Support%E3%81%AE%E4%B8%80%E9%83%A8%E3%81%AEto_s%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%ABformat%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%99%E
Rspec WrongScopeError発生
Rspecでテストを走らせた際に発生した問題について、備忘録として投稿します。
## 発生した問題
“`
Failure/Error:
raise WrongScopeError,
“`#{name}` is not available from within an example (e.g. an ” \
“`it` block) or from constructs that run in the scope of an ” \
“example (e.g. `before`, `let`, etc). It is only available ” \
“on an example group (e.g. a `describe` or `context` block).”`name` is not available from within an example (e.g. an `it` block) or from construct
【React導入】既存のRailsアプリにReactを導入する
## はじめに
この記事では、既存のRailsアプリにReactを導入する方法についてまとめています。環境構築段階からReactを導入する方法についての記事は多いですが、途中からReactを導入する記事は少ないため、私自身かなり苦労しました。同じように苦戦している方の助けになれば幸いです。
https://ja.react.dev/
## 環境/前提
– Ruby 3.2.3
– rails 7.1.3.4
– TaiwindCSS使用
– Docker環境
– 「**esbuild**」で開発を行っていること
– バックエンド(ruby、rails)のみで環境構築していること## Webpackerについて
以前は「Webpacker」を使用するのが一般的でしたが、最近では「Import Maps」や「esbuild」、「Vite」などの新しいツールが推奨されています。Webpackerは廃止されたわけではないですが、公式では使わない方向にシフトしています。この点を押さえておくと良いでしょう。
既存のRailsアプリにReactを導入するための記事が少なく、ChatG
i18nの設定がconfig.i18nにまとまってconfig.action_viewは非推奨となった
Rails6からRails7へアップデートした時に、このような警告が出るようになりました。
“`zsh:
DEPRECATION WARNING: action_view.raise_on_missing_translations is deprecated and will be removed in Rails 7.0. Set i18n.raise_on_missing_translations instead. Note that this new setting also affects how missing translations are handled in controllers.
“`警告の内容は、i18n(国際化)の設定を`config.i18n`にまとめたため、今まで使用していた`config.action_view`の方は非推奨になるというものです。
環境設定の中でi18nの設定をしている場合は、このように変更すると警告が出ななります
。“`diff_ruby
– config.action_view.raise_on_missing_tr
範囲オブジェクト
# 範囲オブジェクトとは
範囲オブジェクトとは、「〇から〇まで」のような、値の範囲を表すオブジェクトのこと。## 作成方法
1から10までの場合以下のように表す。
“`
a = 1..10
a.include?(10)
=> true
“`
include?メソッドで確認すると、10まで範囲に含まれていることがわかる。
10を含めたくない場合は、「.」の数を3つにすることで範囲を10未満にすることができる。
“`
a = 1…10
a.include?(10)
=> false
“`# 使用例
〇以上〇以下や、〇以上〇未満を判定したい時は、不等号を使用するよりも、範囲オブジェクトを使用した方がシンプルに記述することができる。“`
def number_of_people(num)
1 <= num && num < 10 end ``` ↓ ``` def number_of_people(num) (1...10).include?(num) end ```
君の名は?(配列でよく見かけるこいつ→<<)
※ChatGPTの解説と記事で使われたていた名前です。
日本語としては正確性には欠けるかもしれませんが、ひとまずこの名前で呼びたい。
外国の記事も添付してありますが”shovel operator”って呼んでるしまあセーフ以下GPTによる解説
私が知りたかったのは1の配列の内容でした。Rubyの「ショベル演算子(shovel operator)」、つまり`<<`演算子について詳しく解説します。この演算子は、複数の用途で使用される非常に便利な演算子です。以下に、各用途について具体的な例を交えて説明します。 ### 1. 配列への要素追加 `<<`演算子は、配列の末尾に新しい要素を追加するために使用されます。これは配列を変更する破壊的な操作です。 ### 例: ```ruby array = [1, 2, 3] array << 4 puts array.inspect # => [1, 2, 3, 4]
“`この例では、配列`array`に`4`を追加しています。`<<`演算子を使うことで、新しい要素が配列の最後に追加されます。 ### 2. 文字列への連結
VBのWith…End With ステートメントをRubyで実現するには
## 環境
Ruby2.6## はじめに
Rubyを触っていて、その昔、VBでよく使っていた**With…End With ステートメント**が、Rubyでも使えないものだろうかと思いググってみました。Rubyではどうも、**instance_execメソッド**を使って実現できるらしいです。
VBのWith…End With ステートメントは個人的には、わりと重宝して使っていたにも関わらず、Rubyのinstance_execメソッドについて書かれた記事はあまり散見されないようです。
instance_execメソッドの便利さはあまり認知されていないのだろうか。そこで、instance_execメソッドの便利さについて書いてみました。
https://learn.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/statements/with-end-with-statement
## メリット
instance_execメソッドを使うと、オブジェクト参照を複数行に渡って記述したいときに、反
Railsでポリモーフィック関連付けを使用した柔軟なモデル関連付けの実装」
## はじめに
アプリ制作の過程で、ポリモーフィック関連を用いた実装を行いました。ここではその実装過程で得られた気づきをまとめます。ポリモーフィック関連について実際の例を交えながらなるべく分かりやすくまとめたいと思います。## なぜポリモーフィック関連付けが便利なのか
例えば、ブログ記事にコメントを付ける機能を作ったとします。その後、イベントページにもコメントを付けたくなったとします。通常であれば、新しくコードを書き足さないといけないと思います。しかし、ポリモーフィック関連付けを使うと、既存のコードをほとんど変更せずに、イベントにもコメントを付けられるようになります。
それでは、実際にコードを見ていきましょう。## モデルの設定
まず、モデルの設定から。`Article`、`Event`、`Comment`の3つのモデルを作ります。
“`ruby
class Article < ApplicationRecord has_many :comments, as: :commentable end class Event < ApplicationRecord has
【Rails】You need to supply at least one validation エラーが発生したら
## 概要
Rails アプリでフォームデータを送信するとき、以下のようなエラーが発生しました。
“`
You need to supply at least one validation
“`## 原因
このエラーは以下のように `validates` メソッドにバリデーションの内容が指定されないと発生します。
“`rb
class Profile < ApplicationRecord validates :user_id end ``` ## 対処法 このエラーを解決するためには `validates` メソッドに適切なバリデーションを指定します。例えば `user_id` が一意であることを検証するために `uniqueness: true` オプションを指定できます。以下のようにすると、エラーは解消されます。 ```rb class Profile < ApplicationRecord validates :user_id, uniqueness: true end ``` ## まとめ `validates` メソッドを使用する際は、バ
【ActiveRecord】length vs size
# 目的
**ActiveRecord**の`length`と`size`について、しっかり理解した上で適切に使いこなせるようにする。
#### 補足
本記事は、レコード数の取得においてSQL文の発行数を抑えることの出来る`length`と`size`にフォーカスしています。
※`count`メソッドは、必ずSQL文を発行するため割愛(比較用で一部記載あり)# ActiveRecordのlengthとsizeの違い
## `#size`
https://github.com/rails/rails/blob/main/activerecord/lib/active_record/relation.rb#L345-L352
“`rb:rails/activerecord/lib/active_record/relation.rb
# Returns size of the records.
def size
if loaded?
records.length
else
count(:all)
end
end
“`
:::note
– Loadされて
Railsで共通パーツの一部をページごとに変更する方法
## はじめに
アプリ制作の過程で、ヘッダーの一部を特定のページで戻るボタンに変更するという実装を行いました。
ここではその実装過程で得られた気づきをまとめます。## 本記事の内容
Railsで共通パーツとして使っているものの一部分を特定のページで変更する方法。## ヘッダーのView
“`ruby:_header.html.erbOTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた