11
votes

Passer des paramètres supplémentaires aux rails générer un modèle?

Je suis nouveau à Ruby and rails et je cours dans des rails 3 sur Ruby 1.9.2.

Je veux créer un modèle, alors j'ai regardé le Documentation Pour obtenir la définition de table que je veux, mais je me demande comment je passerais cela aux rails générer des modèles?

essentiellement je veux ceci: xxx

mais je ne peux que spécifier le nom de la colonne et le type, non pas: null ou: limite.

J'ai essayé rails modèle générer article (titre: chaîne ,: null => false) (Détails: texte,: limite => 30000,: null => faux) mais cela me dit simplement que ( est un jeton inattendu.

si je viens de générer le modèle avec le titre: String Détails: Texte alors le fichier Article.rb est vide, probablement parce qu'il est lu depuis le DB quand même.

Comme tout ce qui est dans Rails est censé être un) simple et b) magie, je me demande si je manque tout simplement quelque chose et je dois passer quelque chose comme un hachage pour générer un modèle? Ou dois-je vraiment modifier manuellement le fichier de migration .rb?


1 commentaires

Vous devez le modifier manuellement.


4 Réponses :


8
votes

Oui, vous devez modifier manuellement le fichier de migration pour cela. Le générateur offre simplement un point de départ, il ne fait pas tout.

Cela dans le fichier de migration est très facile de toute façon. xxx


1 commentaires

Cela m'a pris pour toujours pour suivre. J'ai cherché à faire la limite dans mon rails g Scoffer ... Merci!



7
votes

Essayez quelques astuces: appartient à l'index et index xxx

ceci créera: xxx


0 commentaires

19
votes

Comme il s'avère, la limite peut être spécifiée (maintenant) être spécifiée dans la ligne de commande: xxx

Source:

Définition de la valeur par défaut, toutefois, Il semble toujours que l'édition manuellement de la migration manuellement.

pour des options de migration supplémentaires, voir Guide des migrations officielles de Rails .


1 commentaires

WOW! Cette réponse est si bonne. Comment pourrais-je montrer le doc de la ligne de commande? rails aident le modèle?



1
votes

Vous pouvez passer "NULL" .TO_SYM => FALSE code> dans vos rails Génère modèle fort>.
Par exemple:

rails g model client 'ClientName, "null".to_sym => false:string{100}'


0 commentaires