Update -- Bitte beachten Sie den untenstehenden Kommentar, der auf eine wahre Erklärung von protected
/ private
in Rubin . Das war in der Tat ein tief sitzendes Vorurteil, das noch aus meiner Java-Zeit stammte. Der einzige wichtige Teil meiner Antwort ist, dass Controller-Methoden, die keine Aktionen sind, nicht public
(oder zumindest sollten Ihre Routen sie schützen).
Die Vererbung einer einzelnen Tabelle ist ein perfektes Beispiel dafür, wann protected
ist in der Modellebene hilfreich, da es dort eine der häufigsten Verwendungen von Vererbung ist.
Auf der Controller-Ebene werden Hilfsmethoden, die auf ApplicationController
sollte markiert werden als protected
-- wenn sie es wären private
können die anderen Fluglotsen nicht auf sie zugreifen, aber wenn sie public
Rails wird sie als Aktionen behandeln.
Ich persönlich finde, dass ich die Klassenvererbung mehr benutze als viele meiner Freunde und Kollegen, sogar in Rails-Anwendungen. Da ich sie häufig verwende (und aus meiner Java-Zeit komme), bevorzuge ich protected
für alle Hilfsmethoden, um jedem (in der Regel mir selbst) die Freiheit zu geben, die Klasse zu erweitern - es sei denn, eine Methode ist mir wirklich peinlich, dann markiere ich sie private
. :)