我正在创建一个小型博客应用程序来学习 Rails - 用户可以登录、创建帖子和评论其他用户的帖子。现在我正在将 Ajax 添加到“添加您的评论”页面,并且在途中遇到了一些设计问题。页面流程如下所示:
# post section
:post.title here
:post.username here
:post.created_at here
:post.body here
# comments section (sorted by date of creation):
:number of comments here
:first comment
:second comment
...
:last comment
# add comment section
:text_area here
:submit button here
问题:
1 - 评论按创建日期排序,因此我的 ajax 调用将新评论添加到页面顶部。如果我改变排序行为,ajax 代码就会被破坏。
2 - 一个评论div可以有 3 个 css 类:.odd、.even 或 .admin(如果评论是由管理员用户进行的,则应用周期奇数/偶数或管理员)。现在我正在对这些类名进行硬编码,并使用一些 if 来获得正确的类名。这也很糟糕,如果更改 css 类名,ajax 代码就会损坏。
我怎样才能避免这些事情,或者至少改善?这是我的 create.js.erb:
var div = $('#comments_div');
var comment_class = div.children().first().attr('class')
var new_class;
<% if current_user.admin == 1 %>
new_class = 'comment_body_admin'
<% else %>
if (comment_class === 'comment_body_odd')
new_class = 'comment_body_even'
else
new_class = 'comment_body_odd'
<% end %>
var new_div = $('#comments_div').prepend("<%= j render @comment %>");
new_div.children().first().attr('class', new_class)
谢谢你的帮助!