2010-03-26 8 views
0

Il a été un moment que je plongeais dans Ruby on Rails et je vais avoir du mal à obtenir des données dans mon modèle,Ruby on Rails n'ajoute enregistrement à la base de données

voici ce que le serveur dit lorsque je soumets ma forme:

Processing ScoresController#index (for 127.0.0.1 at 2010-03-26 15:31:44) [POST] 
    Parameters: {"commit"=>"Add", "authenticity_token"=>"326dd05ffa596bfa12ec3ebb6f48933dbad8dc0c", "score"=>{"name"=>"third score", "score"=>"4"}} 
    Score Load (0.5ms) SELECT * FROM "scores" ORDER BY score DESC 
Rendering scores/index 
Completed in 5ms (View: 2, DB: 0) | 200 OK [http://0.0.0.0/scores] 

mais l'enregistrement est ajouté à la base de données, je sais que c'est vraiment des choses simples mais im perplexes pour expliquer pourquoi il ne fonctionne pas!

vous pouvez voir le code source sur mon github ici: http://github.com/AlexEdwardFish/Scores/tree/master/app/

Répondre

1

Il ne peut pas être passer la validation et votre contrôleur ne vérifie pas si enregistrement échoue.

En outre, vous avez publié un journal pour l'index, mais pas pour créer ... mais la publication est erronée pour l'index, ah, ha! Il n'exécute pas la méthode create. Probablement un problème de routage. Ah oui, vous avez votre map.resources après les instructions de routage par défaut. Ces deux lignes devraient être les dernières lignes du fichier, si elle est utilisée à tous:

map.connect ':controller/:action/:id' 
map.connect ':controller/:action/:id.:format' 

Pourquoi ne pas utiliser un générateur de ressources pour écrire un échafaudage par défaut pour vous? Il est beaucoup plus facile d'apprendre à partir d'un exemple qui fonctionne déjà. :)

+0

eureka! fonctionne très bien maintenant, je pensais que cela pourrait être quelque chose à voir avec la commande de mes routes, je ne savais pas quoi. Je préfère le faire à partir de zéro, ça me force à apprendre comment faire les choses, comme ici je sais maintenant comment utiliser les routes correctement commandées :) – Alex

1

On dirait que vous soumettez le formulaire à indexer au lieu de créer. Essayez de réorganiser votre fichier routes.rb. La priorité est basée sur la création, donc la commande doit être map.resources, map.root, puis les lignes map.connect.

map.resources :scores 
map.root :controller => "scores" 
map.connect ':controller/:action/:id' 
map.connect ':controller/:action/:id.:format'