Les données que vous recevez lors de la définition d'actions dans les rails
params[:id]
Je l'ai souvent exprimé comme, mais je n'en comprenais pas le sens, alors j'ai pris une note. J'espère que cela sera utile pour ceux qui souffrent de problèmes similaires.
Par exemple, supposons que vous souhaitiez implémenter une fonction pour vérifier les détails d'une publication sur l'écran qui affiche la publication comme ceci. <img width = "798" alt = "Myblog.png " src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/652172/60c1bb16-5d35-51f3-9bdf" -ec24eb3273ee.png "> Puisque l'action à afficher en détail est une action show, il semble bon de définir une action show dans le contrôleur et de préparer une vue correspondante.
Je pense que les actions de spectacle sont souvent exprimées comme suit sur de nombreux sites d'apprentissage de rails.
def show
@post = Post.find(params[:id])
end
Cela peut être décomposé comme suit, et chacun a les significations suivantes. Post… Post modèle. Publier des données stockées dans la base de données find… Comment obtenir en spécifiant celui qui correspond à la condition du modèle Post params [: id]:… Conditions pour les données récupérées par find params… Données qui restent lorsque vous ouvrez l'URL d'un tweet spécifique : id… id associé au tweet
En d'autres termes, cela signifie que les données correspondant à l'identifiant de la publication à laquelle l'utilisateur tente d'accéder seront extraites du modèle de publication.
@ post… Attribuez ce qui précède à une variable d'instance afin qu'elle puisse être utilisée avec des données externes (ou une vue)
Ainsi, en l'affectant à une variable d'instance, il peut être affiché dans le fichier de vue.
Quand je vérifie le routage
post GET /posts/:id(.:format) posts#show
Le chemin de routage qui correspond à l'action show du contrôleur posts est post /: id. Puisque ceci: id correspond au message ici, je veux afficher le message avec le même identifiant dans la vue appelée par l'action show. Ainsi, l'action show définit @post et la charge dans la vue comme décrit ci-dessus.