Je fais un blog simple sur les rails. J'ai un modèle Post et un modèle Comment. Lorsque vous créez un commentaire, si le commentaire n'est pas valide, je souhaite afficher l'erreur. Comment faire?Passer une variable du contrôleur pour voir
modèle Post:
#/models/post.rb
class Post < ActiveRecord::Base
has_many :comments
validates :title, :content, :presence => true
end
modèle Commentaire:
#/models/comment.rb
class Comment < ActiveRecord::Base
belongs_to :post
validates :name, :comment, :presence => true
end
Commentaires Contrôleur
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create(params[:comment])
redirect_to post_path(@post)
end
end
Voir formulaire de commentaires:
/views/comments/_form.html .erb
<%= form_for([@post, @post.comments.build]) do |f| %>
<% if @comment.errors.any? %>
error!
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :comment %><br />
<%= f.text_area :comment %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
/views/posts/show.html.erb
<%= render 'comments/form' %>
Comment passer @comment du contrôleur CommentController pour voir /post/show.html.erb?
Merci d'avance.
Ne correspond pas '@post.commentaires », où vous avez tous les commentaires de la publication, y compris celui qui vient d'être créé, suffit? – clyfe