Rails Les méthodes privées font mal si vous ressentez la même chose que Java!

introduction

Méthode privée Ruby on Rails

J'ai créé un contrôleur pour créer ou référencer l'article ci-dessous, mais @articles a obtenu une erreur dans Nil lors de l'ouverture des détails de l'article (j'utilisais @articles en HTML et j'ai eu une erreur là-bas T) C'était complètement inattendu pour moi

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
  //réduction
end
    
def create
  //réduction
end
    
def show
end
Jusqu'à la résolution

Simple, mais résolu en regardant la référence

Les actions CRUD standard pour chaque contrôleur sont souvent organisées dans l'ordre index, show, new, edit, create, update, destroy. Il n'est pas nécessaire que ce soit dans cet ordre, mais gardez à l'esprit que ce sont toutes des méthodes publiques. Comme déjà mentionné dans ce guide, les méthodes publiques du contrôleur doivent être placées avant private.

Il a été répertorié au maximum ... L'erreur a été résolue en réécrivant la méthode privée après la méthode publique. Si vous définissez privé, il semble que ce sera une méthode privée après cela, sauf si vous spécifiez public, etc.

Cause

Eh bien, c'est dommage que je n'ai pas bien regardé la référence, mais je me suis aussi demandé si c'était parce que je procédais avec le même sentiment que Java.

test.java


public void index() {
    //réduction
}

private void set_article() {
    //réduction
}

public void show() {
    //réduction
}  

En Java, l'implémentation ci-dessus ne génère pas d'erreur et set_article () et les versions ultérieures ne sont pas des méthodes privées. C'est vrai parce que chaque méthode définit un modificateur.

Résumé

J'ai appris deux choses de cette époque ① Regardez la référence lors de l'apprentissage d'une nouvelle langue! (Rechercher quand même) ② Lorsque vous apprenez une nouvelle langue, oubliez une fois les stéréotypes conventionnels et essayez de trouver des parties similaires et différentes pendant que vous étudiez.

De plus, essayez et l'erreur est importante

référence

Guide Ruby on Rails https://railsguides.jp/getting_started.html

Recommended Posts

Rails Les méthodes privées font mal si vous ressentez la même chose que Java!
Si vous souhaitez satisfaire la couverture de test des méthodes privées dans JUnit
Syntaxe détaillée de Ruby: quand il y a des variables et des méthodes avec le même nom
Bureau Java avec le même frontal que le WEB.
Implémenter la même fonction que C, système C ++ ("cls"); en Java
Que faire si la commande rails devient inutilisable
Vérifier la méthode privée de l'interface Java9
Si vous souhaitez modifier l'environnement de développement Java d'Eclipse
Juger si les chaînes de caractères à comparer sont les mêmes en Java
[Java] Tester des méthodes privées avec JUnit