6
votes

Ajout d'un attribut supplémentaire à une commande de rails

Tout en essayant de générer un nouvel échafaudage à l'aide de - Collection> Rails générant des articles d'échafaudage Nom: String Sous-catégorie_Id: Integer utilisateurs_id: Integer , j'ai raté le "users_id: integer" et que je peux aller sur le plan avoir cet attribut sur elle et non en exécutant la commande complète à nouveau.

merci


0 commentaires

3 Réponses :


4
votes

Pas vraiment.

Si vous n'avez rien ajouté de nouveau à l'échafaudage existant (et que vous êtes tout simplement inquiet de devoir supprimer / recréer tous ces fichiers), vous pouvez exécuter d'abord, puis recréez, par exemple: P>

rails destroy scaffold Items
rails generate scaffold Items name:string subcategory_id:integer users_id:integer


1 commentaires

Si vous avez ajouté quelque chose, je suggérerais ma réponse ci-dessous. Cependant, la suggestion de Taryn fonctionnera bien.



4
votes

Si vous n'avez pas encore poussé la migration, vous pouvez modifier dB / migrate / 201112 * Create_items.rb et ajouter la ligne suivante:

<div class="field">
  <%= f.label :subcategory_id %><br />
  <%= f.number_field :subcategory_id %>
</div>
<div class="field">
  <%= f.label :users_id %><br />
  <%= f.number_field :users_id %>
</div>


4 commentaires

S'il vous plaît, quel sera l'effet de

: user_id, dans le fichier


Il semble y avoir un problème, ma table de base de données n'est pas renseignée par l'ID de l'utilisateur qui a créé l'article.


Le: user_id div est où vous sélectionnerez l'ID utilisateur de l'utilisateur que vous souhaitez appartenir à l'élément. Si vous voulez qu'il soit renseigné avec l'ID de l'utilisateur actuel, modifiez le numéro_field vers un champ masqué et définissez sa valeur sur l'ID de l'utilisateur actuel.


Merci mais après tout, la table n'est pas peuplée même après avoir ajouté des informations à elle.



0
votes

C'est une question très ancienne, mais une autre réponse vient de me lever après avoir créé mon propre générateur. Si, pour une raison quelconque, les attributs d'un modèle change, que ce soit à vous que vous puissiez ajouter ou supprimé l'attribut par les migrations et que vous souhaitez refléter cela dans les vues échafaudeuses, exécutez simplement l'échafaud avec tous les attributs que vous voulez et aussi avec le Option de saut-migration. Lorsque vous êtes invité à choisir d'écraser les vues que vous souhaitez écraser.

Si vous avez oublié d'ajouter un attribut, utilisez une migration pour l'ajouter (Rails G Migration AddxxXtoyyy Field: Type), puis exécutez l'échafaudage à nouveau comme je l'ai expliqué ci-dessus.

Cette solution est destinée à tout nouveau des utilisateurs de rails qui ont eu ce problème. Ce n'est pas amusant de changer de vue à la main chaque fois que la base de données change.


0 commentaires