スリ飯屋Malankaのフリーエンジニアな日々

IT実務未経験から約1年、東京でフリーランスのRuby on Railsエンジニアに転職。約2年半、大阪中崎町でスリランカカレーの間借りしてました。フリーランスエンジニアになるためのノウハウ、スリランカの事を発信していきます。

【Rails】SymbolとStringの違いとenumについて

シンボルと文字列

・シンボル

  • オブジェクトidが一意に振られる。一つのシンボルは常に同一のオブジェクト。なのでメモリの節約になる。

  • 変更が加えられない(イミュータブル)

class Symbol (Ruby 3.0.0 リファレンスマニュアル)

・文字列

  • オブジェクトidが毎回変わる。別のオブジェクト。

  • 変更される(ミュータブル)

enum

数値型のカラムを、文字列やシンボルで参照出来る。

ActiveRecord::Enum

enum型のカラムに、無効な値を入れるとArgumentErrorを返す

=やmergeなどで、enumで定義されていない値を入れようとすると、以下のようにArgumentErrorを返します。

ArgumentError: 'hoge' is not a valid status

参考

https://tech.misoca.jp/entry/2015/08/10/132419

enum型のカラムに値を設定する
シンボル
文字列
数値

どれでも設定可能です。

が、個人的には - 変更が加えられない(イミュータブル) - オブジェクトidが一意のため、メモリを節約出来る

という理由から、シンボルを使うことが多いです。




RailsやRubyを学びたい人へ


RailsやRubyを学びたい人は、

RailsHack(レイルズハック)という、

最近できた新しいプログラミングスクール(今なら通常価格69,800円が、早期割で29,800円!)か、

Udemy で下記のコースを受講すると良いです★


✅1. フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座

✅2. 【はむ式】ハンズオンで学ぶRuby on Rails 6【Dockerにも触れられる】 <- おすすめ。ハムさんはReactやTypeScriptの教材も非常に丁寧。

✅3. はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう




また、

Udemy は定期的にセールをやっていますし(90%OFFとかもザラ)、

「30日間なら返金できる」ので、

満足できなかった時でも安心です。


f:id:mah666hhh:20201129193352p:plain


【公式】RailsHack(レイルズハック)

【公式】Udemyで学んでみる