2016-12-02 7 views
0

にアクセスし、継承の概念を処理していますBlaController#createBlaParentController#createになります。しかし、BlaParentControllerはその子BlaControllerからメソッドpermitted_paramssettingにアクセスしています。これはどのように可能ですか?どのようにレールは、親はこれが「未定義のメソッドHI」エラーを発生させ、子

+0

あなたの2番目の例は理にかなっていません。 'ParentRandom'とは何ですか?また、例として直感的なクラスがあれば簡単です。 「Animal」、「Dog」、「GermanShepherd」、継承の仕組みがはっきりしています。 – Amadan

+0

このようにしなければならなかったのは残念ですが、子クラスの 'permitted params and settings'メソッドを使って親クラスのアイデアを得ることができます – gates

答えて

0

通常の方法では、受信者用に定義されているかどうかが重要です。他の種類のコンテキスト(どのメソッドから呼び出されるかなど)は重要ではありません。 (これにはいくつかの例外はKernel#__dir__Module#nestingException#backtraceような方法である。)

最初の例では、受信機はAはなくBのインスタンスです。したがって、Aのメソッドにはアクセスできますが、Bのメソッドにはアクセスできません。

第2の例では、受信者はBlaControllerのインスタンスであり、BlaParentControllerのサブクラスです。したがって、BlaParentControllerのメソッドだけでなく、BlaControllerのメソッドにもアクセスできます。

関連する問題