Rails Private Methoden tun weh, wenn Sie sich genauso fühlen wie Java!

Einführung

Private Ruby on Rails-Methode

Ich habe einen Controller erstellt, um den folgenden Artikel zu erstellen oder zu referenzieren, aber @articles hat beim Öffnen der Artikeldetails einen Fehler in Nil erhalten (ich habe @articles in HTML verwendet und dort einen Fehler erhalten T) Es war völlig unerwartet für mich

articles_controller.rb


def index
  @articles = Article.paginate(page: params[:page], per_page: 5)
end
  
private
  def article_params
    params.require(:article).permit(:title, :description)
  end
  
def new
  //Kürzung
end
    
def create
  //Kürzung
end
    
def show
end
Bis zur Auflösung

Einfach, aber durch Betrachten der Referenz gelöst

Die Standard-CRUD-Aktionen für jeden Controller sind häufig im Auftragsindex angeordnet, anzeigen, neu, bearbeiten, erstellen, aktualisieren, zerstören. Es muss nicht in dieser Reihenfolge sein, aber denken Sie daran, dass es sich bei allen um öffentliche Methoden handelt. Wie bereits in diesem Handbuch erwähnt, müssen die öffentlichen Methoden des Controllers vor privat gestellt werden.

Es wurde in vollem Umfang aufgeführt ... Der Fehler wurde behoben, indem die private Methode nach der öffentlichen Methode neu geschrieben wurde. Wenn Sie privat definieren, scheint es sich danach um eine private Methode zu handeln, es sei denn, Sie geben public usw. an.

Ursache

Nun, es ist schlimm, dass ich die Referenz nicht richtig angesehen habe, aber ich habe mich auch gefragt, ob es daran lag, dass ich mit dem gleichen Gefühl wie Java vorging.

test.java


public void index() {
    //Kürzung
}

private void set_article() {
    //Kürzung
}

public void show() {
    //Kürzung
}  

In Java generiert die obige Implementierung keinen Fehler, und set_article () und höher sind keine privaten Methoden. Das ist richtig, weil jede Methode einen Modifikator definiert.

Zusammenfassung

Aus dieser Zeit habe ich zwei Dinge gelernt ① Sehen Sie sich die Referenz an, wenn Sie eine neue Sprache lernen! (Suche trotzdem) ② Vergessen Sie beim Erlernen einer neuen Sprache einmal die herkömmlichen Stereotypen und versuchen Sie, beim Lernen ähnliche und unterschiedliche Teile zu finden.

Auch Try & Error ist wichtig

Referenz

Ruby on Rails-Leitfaden https://railsguides.jp/getting_started.html

Recommended Posts

Rails Private Methoden tun weh, wenn Sie sich genauso fühlen wie Java!
Wenn Sie die Testabdeckung privater Methoden in JUnit erfüllen möchten
Rubys detaillierte Syntax: Wenn es Variablen und Methoden mit demselben Namen gibt
Java-Desktop mit demselben Frontend wie das WEB.
Implementieren Sie dieselbe Funktion wie das C, C ++ - System ("cls") in Java
Was tun, wenn der Befehl Rails unbrauchbar wird?
Überprüfen Sie die private Methode der Java9-Schnittstelle
Wenn Sie die Java-Entwicklungsumgebung von Eclipse aus ändern möchten
Beurteilen Sie, ob die zu vergleichenden Zeichenfolgen in Java identisch sind
[Java] Testen Sie private Methoden mit JUnit