Ваш второй редирект должен быть:
redirect_to(:controller=>"posts" ,:action=>'show', :id=> @comment.post.id)
Хотя, глядя на это, вы определенно могли бы использовать некоторые более совершенные шаблоны для очистки. Если вы используете RESTful маршруты, я бы изменил ваше действие создания на:
def create
@post = params[:id]
@comment = @post.comments.build(params[:comment])
if @comment.save
redirect_to posts_url
else
redirect_to post_url(@post)
end
end
Это позволит вам удалить скрытое поле в форме, поскольку оно должно передаваться через URL в качестве идентификатора.