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? p>
essentiellement je veux ceci: p> mais je ne peux que spécifier le nom de la colonne et le type, non pas: null ou: limite. P> P> P> P> P> J'ai essayé 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. p> 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? P> p> rails modèle générer article (titre: chaîne ,: null => false) (Détails: texte,: limite => 30000,: null => faux) le code> mais cela me dit simplement que ( est un jeton inattendu. p>
4 Réponses :
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. p>
Cela m'a pris pour toujours pour suivre. J'ai cherché à faire la limite dans mon rails g Scoffer ... code> Merci!
Essayez quelques astuces: appartient à l'index et index ceci créera: p>
Comme il s'avère, la limite peut être spécifiée (maintenant) être spécifiée dans la ligne de commande: Source: strong> Définition de la valeur par défaut, toutefois, Il semble toujours que l'édition manuellement de la migration manuellement. P> pour des options de migration supplémentaires, voir Guide des migrations officielles de Rails a >. p> p>
WOW! Cette réponse est si bonne. Comment pourrais-je montrer le doc de la ligne de commande? rails aident le modèle?
Vous pouvez passer "NULL" .TO_SYM => FALSE code> dans vos rails
Par exemple: rails g model client 'ClientName, "null".to_sym => false:string{100}'
Vous devez le modifier manuellement.