Rails5.1.3でWebアプリケーション制作の勉強をしています。
モデルのメソッド内で別のメッソッドを呼ぼうとするとNameErrorが発生してしまい呼び出しできません。
ほかのモデルでは呼び出しできているのですが、このclassだけ呼び出し時にエラーが出てしまうのです。
単純な呼び出しなので記述の間違いはないと思うのですが、何か決まり事があって、エラーが出てしまうのでしょうか?コードは以下になります。
special_member.rb class SpecialMember def self.pt_special . . if @year == 2018 @year_point = Eighteen.find_by(customer_id: cus.id) special_sub---------ここでエラーが発生! elsif @year = 2019 . . def self.special_sub-----このメッソッドを呼び出したい。 . .
エラー内容 NameError: undefined local variable or method `special_sub' for SpecialMember:Class from app/lib/special_member.rb:12:in `block in pt_special' from app/lib/special_member.rb:7:in `each' from app/lib/special_member.rb:7:in `pt_special' from (irb):1
呼び出しに render action: 'special_subとしても、selfを外して呼び出しても呼び出しは
できませんでした。
ちなみに呼び出しに成功しているモデルは以下です。
performance.rb def self.year_performance if @year == 2018 @score = Score.find_by(customer_id: i) @year_point = Eighteen.find_by(customer_id: i) bonus_sub--------呼び出しに成功 . . def self.bonus_sub---------を呼び出した。 . .
同じように記述しているのですが、エラーが発生したり、しなかったりの原因がわかりません。
どなたか教えていただけないでしょうか?宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。