Hago un blog simple sobre rieles. Tengo un modelo de publicación y un modelo de comentario. Cuando crea un comentario, si el comentario no es válido, quiero mostrar el error. ¿Cómo puedo hacer?Pase una variable desde el controlador para ver
modelo Post:
#/models/post.rb
class Post < ActiveRecord::Base
has_many :comments
validates :title, :content, :presence => true
end
modelo Comentario:
#/models/comment.rb
class Comment < ActiveRecord::Base
belongs_to :post
validates :name, :comment, :presence => true
end
Comentarios Controlador
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create(params[:comment])
redirect_to post_path(@post)
end
end
Vista para hacer comentarios formulario:
/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' %>
cómo pasar @comment del CommentController controlador para ver /post/show.html.erb?
Gracias de antemano.
No '@post.comments', donde tiene todos los comentarios de la publicación, incluido el de nueva creación, ¿es suficiente? – clyfe