Ich bekomme einen NoMethodError beim Versuch, meine "not_coworker_friend" oder "Coworker_friend" -Methode aufzurufen. Ich arbeite in Ruby MVC. Dies ist mein aktueller Code, geschrieben Da es erzeugt keine Fehler:Ruby Undefined Method (im Modell)
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
Mein Ziel ist es, nur den Empfang zu bestätigen, wenn „not_coworker_friend“ == true.
Linien 5 & 6 sollte sein:
...
has_attached_file :receipt, :if => :not_coworker_friend
validates_attachment_presence :receipt, :if => :not_coworker_friend
...
Hinzufügen des ": if => not_coworker_friend" auf jene Linien erzeugt ein NoMethodError (nicht definierte Methode `nennen‘ für: not_coworker_friend: Symbol) :, auch dort obwohl wird kein Fehler für die Zeilen 8 ausgegeben & 9. Warum wirft dies nur selektiv einen Fehler? Und wie kann ich das korrigieren? diese
definieren Verfahren vor dem Einsatz. Nur für den Fall. –
Ich änderte, so dass die Methode vor der Verwendung definiert wurde, aber das hat nicht funktioniert. Es gibt keinen Fehler, wenn es in den Zeilen 8 und 9 unabhängig aufgerufen wird, daher muss es definiert werden. –
Sollte so funktionieren. Vielleicht Konsole neu laden? aber bitte lesen Sie auf boolean: https://en.wikipedia.org/wiki/Boolean_data_type – Fallenhero