Ayant du mal à se commencé avec Ruby on Rails
-
13-09-2019 - |
Question
Je me demande si quelqu'un peut répondre à certaines des questions que je suis confronté? Je crée une application de rails:
rails myapp -d mysql
cd myapp
haml --rails .
rake db:create:all
Ensuite, je veux utiliser un client MySQL pour créer des tables. Disons que les utilisateurs et les clients. Un client est également un utilisateur de sorte que vous avez schéma comme ceci:
users
----------------
id int, not null, primary key, auto increment
first_name varchar(50) not null
last_name varchar(50) not null
email varchar(50) not null unique
password varchar(50) not null
created_at datetime not null
updated_at datetime not null
customers
----------------
id int, not null, primary key, auto increment
user_id int, unique
-- some other stuff that is customer specific
ce que Rails commandes de script ai-je besoin de courir pour obtenir le modèle, des vues et des contrôleurs créés et complètement rempli sous mes rails app? J'ai essayé ceci:
ruby script/generate scaffold user
ruby script/generate scaffold customer
ce qui crée les fichiers mais les modèles sont vides:
class User < ActiveRecord::Base
end
ce qui est l'affaire? Aussi, je veux créer une section d'administration pour gérer des choses. Je me suis dit que je dois ajouter des routes pour ceux-ci:
map.namespace :admin do |admin|
admin.resources :users
admin.resources :customers
end
Que dois-je besoin pour obtenir la section d'administration va? Voici également les versions de rubis / gemmes Je courais:
ruby 1.8.6
rails 2.3.5 & 2.3.2 <- I'm using 2.3.2 because haml
wasn't working (or some other plugin) with 2.3.5
haml 2.2.15
rspec 1.2.9 <- I saw from another thread that I might need
this when creating an adminstration section (rspec_controller etc)
La solution
Les modèles sont censés être vide par défaut, car le schéma de base de données est enregistré dans le fichier schema.rb
et gérées en utilisant migrations .
De votre réponse, je comprends que vous cherchez une solution de préemballage pour écrire un couple de configurations et d'obtenir tout, du contrôleur à l'administration cuite pour vous. Je suis désolé, Rails ne vous offre pas cette fonctionnalité. Si vous voulez une section d'administration que vous avez réellement à coder.
Il comprend:
- créer vos vues et modèles
- créant vos actions
- cartographier vos itinéraires
- écrit vos tests
L'échafaudage ne vous fournit un point de départ, mais cela est un point de départ, vous devez adapter et étendre à vos besoins.
Si vous voulez que l'échafaudage pour générer automatiquement vos vues initiales selon votre table de base de données, vous pouvez passer les arguments à l'outil de ligne de commande
ruby script/generate scaffold user name:string age:integer
Mais si vous voulez ajouter un nouveau champ plus tard, vous devrez écrire une nouvelle migration et modifier vos vues / actions en conséquence.
Plus d'informations sont disponibles dans les Rails Guides et Wiki .
Autres conseils
Rails est conçu pour l'indépendance de base de données avec toute la « création » fait par les migrations situées dans db/migrate
.
Pour créer les tables DB appropriés, vous exécutez alors simplement rake db:migrate
et les migrations seront exécutées pour créer les tables DB nécessaires.
Un bon endroit pour plus d'informations est le Rails guides qui doit travailler un exemple d'application à travers.