2010-02-02 7 views
0

Je pourrais utiliser un peu d'aide pour résoudre ce problème. Lorsque vous utilisez l'application pour créer un nouvel enregistrement, rien n'est enregistré dans la base de données.Dépannage: Rails ne peut pas enregistrer dans la base de données en production?

Aucune erreur visible n'est présentée.

En passant à la ligne de commande, et en utilisant la console avec le même environnement de production, je peux créer un nouvel objet et l'enregistrer (je dois contourner les validations). Si je regarde dans la base de données MySQL, je peux voir l'enregistrement que j'ai créé à partir de la console.

L'application fonctionne correctement localement.

Des idées sur ce qui pourrait être le problème?

Rails 2.0.2

Répondre

1

Cela ressemble à une erreur de validation.

Dans votre contrôleur, essayez d'utiliser save! (avec le bang) pour voir si va jeter une erreur significative.

Je ne suis pas sûr de ce code que vous avez dans le contrôleur, mais cela pourrait aider à montrer le problème

if my_object.save 
    log.debug 'object saved correctly' 
else 
    log.debug my_object.errors.full_messages 
end 

Bonne chance, si cela ne suffit pas. Essayez d'afficher le code de contrôleur et de modèle approprié.

+0

C'était une erreur de validation. Le modèle essayait de sauvegarder un fichier dans un répertoire auquel il n'avait pas l'autorisation d'écrire. L'écriture a échoué, puis la validation a été lancée et tout s'est transformé en crème. Merci! – mikewilliamson

1

Avez-vous vérifié que la requête (avec params, etc) fonctionne correctement en développement? Si ce n'est pas le cas, un fichier journal de production vous indiquera peut-être où la requête a été routée (par exemple, quel contrôleur et quelle action, et avec quels paramètres).

Questions connexes