ruby class継承
https://qiita.com/go8/items/db936ff7312ba7d97315
このサイトを参考に試してみる
先ほどの続き、次は継承を試してみる
ファイル名:practice_main.rb
ファイル名:practice.rb
ファイル名:inheitance.rb
こうコードを書いた
動かない...
なんでだろうと思い
ファイル名:inheitance.rb
こう変更してみた
$ ruby practice_main.rb
クラスタンスメソッド
インスタンスメソッド
無事動いた!!
どうやらファイル名は関係ないらしい
全てクラス名を参照するっぽい
ruby class継承
https://qiita.com/go8/items/db936ff7312ba7d97315
このサイトを参考に試してみる
先ほどの続き、次は継承を試してみる
ファイル名:practice_main.rb
ファイル名:practice.rb
ファイル名:inheitance.rb
こうコードを書いた
動かない...
なんでだろうと思い
ファイル名:inheitance.rb
こう変更してみた
$ ruby practice_main.rb
クラスタンスメソッド
インスタンスメソッド
無事動いた!!
どうやらファイル名は関係ないらしい
全てクラス名を参照するっぽい
requireメソッド
https://qiita.com/go8/items/db936ff7312ba7d97315
このサイトを参考に試してみる
まずrequireから
ファイル名:practice_class.rb
ファイル名:practice_main.rb
こうコードを入力したところ
$ ruby practice_main.rb
クラスタンスメソッド
インスタンスメソッド
動いた。
class << selfについて
https://magazine.rubyist.net/articles/0046/0046-SingletonClassForBeginners.html
このサイトによると
class << self と書いた行から end までの間に def class_method のようにクラス名を書かずにインスタンスメソッドと同じようなメソッド定義を書いていきます。この間に書いたものはクラスメソッドとして定義されます。
という記述があったので試してみる
このようにコードを書いたら
$ ruby practice.rb
クラスメソッドになってる
こう出力された
ちゃんとselfをつけずともclassメソッドになってる
一方で
こうコードを書くとエラー
完全にクラスメソッドになっているから、インスタンスメソッドとしての呼び出しは無理っぽい
ruby クラスメソッドとインスタンスメソッド
https://qiita.com/hogeta_/items/27221675638cdc9bde6b
この記事を参考にしてやってみる
こんな感じでコードを打ったところ
$ ruby practice.rb
呼び出し失敗
これはクラスメソッド
インスタンスメソッド
これはクラスメソッド
このように出力された
さらに
このようにコードを打ったところ
ruby practice.rb
インスタンスメソッド
呼び出し失敗
これはクラスメソッド
papa成功
このように出力された
とりあえず勉強しないといけないところ
まず
requireとincludeとextendについて
https://qiita.com/go8/items/db936ff7312ba7d97315
次に
mixinについて
https://qiita.com/k-sekido/items/6ad469df22ddadb75f87
そして
ActiveSupport::Concernについて
https://qiita.com/castaneai/items/6dc121ce6ff100614f42
最後にcrudなるcontrollerについて