做一个带有评论的小演示迷你博客应用程序。使用 ROR 和 HAML。我希望使用 AJAX 创建评论,所以我编写了 create.js.haml。如果在创建过程中出现任何错误,我也希望出现错误。
创建.js.haml
:plain
if #{@comment.errors.any?} {
$("#CommentError").html("#{escape_javascript(render(:partial => "error"))}");
$("#CommentError").attr("style", "display: inline");
} else {
$("#CommentsTable").append("#{escape_javascript(render(@comment))}");
$("#CommentError").attr("style", "display: false");}
这行不通。条件计算结果为true
orfalse
但不执行代码。但是,如果我将条件的任何部分放在它自己的 create.js.haml 中,它就可以工作。
这在出现错误的情况下有效:
:plain
$("#CommentError").html("#{escape_javascript(render(:partial => "error"))}");
$("#CommentError").attr("style", "display: inline");
这在没有错误的情况下有效,我需要添加评论:
:plain
$("#CommentsTable").append("#{escape_javascript(render(@comment))}");
$("#CommentError").attr("style", "display: false");
这是观点,尽管我认为问题不存在:
%p
%strong Title:
= @post.title
%p
%strong Text:
= @post.text
%h3 Comments:
.CommentsArea
= render @post.comments
#CommentError{:style => 'display: none'}
%h2 Add a comment:
= render "comments/form"
= link_to 'Back', posts_path
|
= link_to 'Edit', edit_post_path(@post)