rails enum 同じ文字の定義
enumでその他という項目をそれぞれのenumに用意したところ、
which is already defined by another enum
というエラーが出てしまった
https://www.tom08.net/entry/2016/11/09/141349
このサイトに書いてある通りに修正
enumの最後にを
つけた
無事エラー解決されて動いた
rails devise カラム追加
sign_upするときにdeviseのデフォルト以外に新しいカラムを作りたかった
https://ruby-rails.hatenadiary.com/entry/20140804/1407168000
を参考にした
かなり順調に言ったかと思いきや
Unpermitted parameters
が出た場合は、"Strong Parameter"のエラー
がでた、記事通りにやったらまた別のエラー
https://qiita.com/ry023/items/c6a469f65615f796be45
この記事通りに修正したらうまくいった
どうやら
は古いらしい
includeとprependの違い
Module#ancestors
というメソッドを使ってみる
このメソッドはクラス、モジュールのスーパークラスとインクルードしているモジュール を優先順位順に配列に格納して返すメソッド
https://docs.ruby-lang.org/ja/latest/method/Module/i/ancestors.html
使い方としてはこんな感じ
p Integer.ancestors # => [Integer, Numeric, Comparable, Object, Kernel, BasicObject]
になる
https://qiita.com/pink_bangbi/items/2c2f17516cd3a7b4eeac
Ex1
ファイル名:practice_main.rb
ファイル名:practice.rb
ファイル名:practice2.rb
ファイル名:fur.rb
ファイル名:claw.rb
Ex2
ファイル名:practice.rb
ファイル名:practice2.rb
ファイル名:fur.rb
ファイル名:claw.rb
こう2つのコードを書いた
Ex1の方は
$ ruby practice_main.rb
クラスタンスメソッド
practice.rbののpapaメソッドを置き換えた
Practice2クラスのhaha
[Practice2, Claw, Fur, Haha, Object, Kernel, BasicObject]
と出力された
Ex2の方は
$ ruby practice_main.rb
クラスタンスメソッド
practice.rbののpapaメソッドを置き換えた
fur_moduleのなかのpapaメソッド
[Claw, Fur, Practice2, Haha, Object, Kernel, BasicObject]
と出力された
見ての通り上書きの順番が異なっているため、実行結果に変化が生じた
moduleの組み込み前回のつずき
このサイトを参考に試してみる
moduleを組み込む前回の復習
ファイル名:practice_main.rb
ファイル名:practice.rb
ファイル名:practice2.rb
ファイル名:fur.rb
ファイル名:claw.rb
このコードで実行すると
$
ruby practice_main.rb
クラスタンスメソッド
practice.rbののpapaメソッドを置き換えた
fur_moduleのなかのpapaメソッド
このように出力された
requireで取得したものの上書きまでできてる
moduleの組み込み
このサイトを参考に試してみる
moduleを組み込む
ファイル名:practice_main.rb
ファイル名:practice.rb
ファイル名:practice2.rb
ファイル名:fur.rb
このコードで実行すると
$ ruby practice_main.rb
クラスタンスメソッド
継承メソッド
fur_moduleのなかのpapaメソッド
このように出力された
クラス継承 オーバーライト
https://qiita.com/go8/items/db936ff7312ba7d97315
このサイトを参考に試してみる
前回のクラス継承の続き
ファイル名:practice_main.rb
ファイル名:practice.rb
ファイル名:practice2.rb
このコードで実行すると
$ ruby practice_main.rb
クラスタンスメソッド
継承メソッド
が出力され、無事オーバーライトできた