Je suis un débutant dans Ruby sur rails. Dans une application Rails, j'ai vu du code comme suit:
dans modèle strong>, il existe une classe dans contrôleur strong>, il existe une méthode "< quelque_method strong>" p> J'ai trois questions à poser: < / p> 1. strong> dans le code dans le contrôleur voiture code>: p>
@ my_car.comments << composant.new () code>, qu'est-ce que ça fait? Quel
<<< / code> signifie? P>
voiture code> doit définir explicitement le
association code> association avec
composant code> classe si "< fort> <<< / forte> "est utilisé ou est le" <<< / strong> "peut être utilisé pour ajouter une nouvelle association à
voiture code>, même l'association n'est pas définie dans
voiture code> classe explicitement? p> p>
3 Réponses :
après votre édition:
point 1 strong> p> est identique à p> Il vous permet d'ajouter des éléments à une collection ou même de cordes de concaténate. P> Certains liens: P> pour les tableaux p> li>
pour les chaînes p> li>
pour io flux < / p> li>
ul> Remarque Vous pouvez naturellement surcharger ou définir votre propre. P> point 3 strong> p> Les relations doivent être explicites, sinon les rails ne peuvent pas Créez les méthodes adéquates:
@ my_car.components code> n'aurait aucun sens. p> p>
Cela indique-t-il également que l'objet de voiture est associé à un objet composant avec «HAS_MANY» Association (voiture HAS_MANY Composant)?
@ Apneadiving, désolé pour l'acceptation tardive, votre réponse est excellente! Merci.
<< Ajoute un élément à un tableau. P>
Donc, dans l'exemple ci-dessus, vous ajoutez un nouveau composant à la matrice CAR.COMPONENTS. Cela fait partie de Ruby et vous le verrez souvent. P>
La classe de voiture doit-elle définir explicitement l'association HAS_MANY avec la classe de composants ou le "<<" peut être utilisé pour ajouter une nouvelle association?
@Mellon: il doit explicitement définir la relation
Apneadiving est correct, vous devez avoir une relation has_many définie.
Concernant 1. & 2., j'ai résumé les différentes significations de <<< / code> Ici . P>
Vous pouvez utiliser << aussi avec une chaîne.
"quelque chose" << "Autre" code> Résultats dans
"quelque chose d'autre". Vous pouvez surcharger l'opérateur << dans n'importe quelle classe, comme en C ++. Notez également que ce n'est qu'un code> <`dans le modèle, et cela signifie héritage.