"not_coworker_friend"メソッドまたは "coworker_friend"メソッドを呼び出すときにNoMethodErrorが発生します。私はRuby MVCで働いています。これは、すべてのエラーを生成しません書かれたように私の現在のコード、次のとおりです。Ruby未定義メソッド(モデル内)
class EmergencyTrip < ActiveRecord::Base
belongs_to :user
has_attached_file :receipt
validates_attachment_presence :receipt
validates_presence_of :trip_cost, :if => :not_coworker_friend
validates_presence_of :phone_of_person, :if => :coworker_friend
def not_coworker_friend
(self.ride_home_service == "co-worker/friend") ? false : true
end
def coworker_friend
(self.ride_home_service == "co-worker/friend") ? true : false
end
end
私の目標は「not_coworker_friend」場合にのみ真==領収書を検証することです。
線5 & 6は次のようになります
...
has_attached_file :receipt, :if => :not_coworker_friend
validates_attachment_presence :receipt, :if => :not_coworker_friend
...
追加 ":=> not_coworker_friend場合、" これらの線にはNoMethodErrorを生成する(:not_coworker_friend:未定義のメソッド `のために」と呼ぶシンボル):,も存在かかわらず9行目でエラーがスローされません9.なぜこれは選択的にエラーを投げるだけですか?そして、私はこれをどのように修正できますか?
それを使用する前に、メソッドを定義します。念のため。 –
メソッドが使用前に定義されるように変更しましたが、これは機能しませんでした。それが8&9行目に関係なく呼び出されたときのエラーはないので、定義する必要があります。 –
このように動作するはずです。多分コンソールをリロードしますか?ブール値で読んでください:https://en.wikipedia.org/wiki/Boolean_data_type – Fallenhero