コメント付きの小さなデモ ミニブログ アプリを実行しています。ROR と HAML の操作。コメントはAJAXで作成したいので、create.js.hamlと書きました。また、作成中にエラーが発生した場合にエラーが表示されるようにします。
create.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
条件は または のいずれかに評価されますfalse
が、コードは実行されません。しかし、条件の一部を 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)