Хорошо, что вы захотите его почистить.Это то, что я бы сделал.Я включил здесь несколько примеров нескольких вещей: Partials, Helpers, а также немного очистил HTML, чтобы дать больший контроль над стилем в ваших таблицах стилей (который я пропустил, но вы можете выяснить, какую часть яконечно).Если бы это был мой проект, я бы извлек все еще больше (например, я бы, вероятно, переместил ссылки «редактировать / назад» внизу, а также ссылки «Заказать», на их собственные партиалы или помощников, так как явероятно, будет использовать их во многих местах по всему приложению.) И если ваши комментарии полиморфны (то есть, не только для сообщений), то определенно переместите это в свой собственный файл представления.Кроме того, я сделал это довольно быстро, поэтому могут возникнуть некоторые ошибки, извините, если вы найдете какие-либо.
_post.html.erb
<article class="post-info">
<span class="title"><b>Title:</b> <%= post.title %></span>
<p><%= post.content %></p>
<span class="user"><b>User:</b> <%= post.user.username %></span>
</article>
<div class="post" id="post-<%=post.id%>">
<div class="vote-count"><%= post.total_votes %></span> votes
<ul class="voted-user">
<% post.votes.each do |vote| %>
<li><%= link_to vote.user.username, vote.user %></li>
<% end %>
</ul>
<ul class="voting">
<li><%= link_to "Vote Up", vote_up_path(post, :votable_type => "Post"), :remote => true, :class => "vote-up" %></li>
<li><%= link_to "Vote Down", vote_down_path(post, :votable_type => "Post"), :remote => true, :class => "vote-down" %></li>
</ul>
_comment.html.erb
<div class="comment" id="comment-<%=comment.id%>">
<article class="comment">
<b>Comment:</b> <%= comment.content %>
</article>
<div class="votes-total">
<b>Votes:</b> <span class="vote-count"><%= comment.total_votes %></span>
<ul class='voted-user'>
<% comment.votes.each do |vote| %>
<li><%= link_to vote.user.username, vote.user %></li>
<% end %>
</ul>
</div>
<div class="commenter">
<b>Commenter:</b> <%= link_to comment.user.username, comment.user %>
</div>
<div class="link">
<b>Link:</b> <%= link_to "Show Post Comment", [comment.post, comment] %>
</div>
<div class="vote">
<b>Vote:</b> <%= link_to "Vote Up", vote_up_path(comment, :votable_type => "Comment"), :remote => true, :class => "vote-up" %>
</div>
</div> <!-- .comment -->
show.html.erb
<h2>Posts</h2>
<%= render @post %>
<h2>Comments</h2>
<ul class="order">
<li><%= link_to 'Order by Date', post_path(@post, :order_by => "created_at ASC") %></li>
<li><%= link_to 'Order by Votes', post_path(@post, :order_by => "total_votes DESC") %></li>
</ul>
<%= render @comments %>
<%= will_paginate @comments %>
<h2>Add a Comment</h2>
<%= form_for([@post, @post.comments.build]) do |f| %>
<div class="field">
<%= f.label :content %>
<%= f.text_area :content %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<ul class="manage">
<li><%= edit_link_if_allowed(current_user, @post) %></li>
<li><%= link_to 'Back', posts_path %></li>
</ul>
Помощник по сообщениям
def edit_link_if_allowed(current_user, post)
link_to "Edit", edit_post_path(post) if post.user_id == current_user.id
end