2010-03-12 7 views
1

J'ai une application Rails très simple. Fondamentalement, un article avec des commentaires. Je veux que la page d'article montre l'article, les commentaires dessous et puis une zone de texte pour écrire un commentaire et un bouton d'envoi pour le soumettre.Le formulaire est soumis lorsque la page se charge

J'ai tout réussi à l'exception d'un (gros) problème. Lorsque la page est chargée .. example.com/article/1 un commentaire vide est soumis à la base de données.

J'ai corrigé cela en incluant "validates_presence_of: body" dans le modèle Comment. Mais cela aboutit à l'image suivante lorsque la page se charge:

alt text

Ceci est mon code par la voie:

def show 
@place = Article.find(params[:id]) 
@comment = Article.find(params[:id]).comments.create(params[:comment]) 

respond_to do |format| 
    format.html # show.html.erb 
    format.xml { render :xml => @article } 
end 
    end 

et

<% form_for([@article, @comment]) do |f| %> 
    <p> 
    <%= f.label :commenter %><br /> 
    <%= f.text_field :commenter %> 
    </p> 
    <p> 
    <%= f.label :body %><br /> 
    <%= f.text_area :body %> 
    </p> 

    <p> 
    <%= f.submit "Create" %> 
    </p> 
<% end %> 

Répondre

2

C'est parce que vous avez fait une créer .

Créer un objet de sauvegarde try et comme est invalide, une erreur est générée.

Made: @comment = Article.find(params[:id]).comments.build(params[:comment])

résoudre votre problème, je pense

Questions connexes