私はレールを初めて使用しますが、DPS のすべての子をインデントする簡単な (または単純ではない) 方法があるかどうか疑問に思っていましたか?
has_many :comments および belongs_to :comment という「Comment」というモデルがあります。私の見解では、各コメントとそのコメントの各コメント、およびそのコメントの各コメントなどを表示する DPS を実装しました。
私のコードは次のようになります。
<div class=feed>
<% @comments.each do |comment| %>
<% if comment.comment_id == nil # display all original comments %>
<!-- subject -->
<div class="subject">
<%= comment.subject %>:
</div>
<!-- create array of replies -->
<% replies = Array.new %>
<% replies.push(comment) %>
<% while replies.any? %>
<% reply = replies[0] %>
<% replies.delete_at(0) %>
<!--- name -->
<div class="comment">
<%= User.find(reply.user_id).name %>
<!-- comment -->
<%= reply.body %>
<% if user_signed_in? %>
<%= link_to "reply", new_comment_comment_path(reply.id) %>
<% end %>
</div>
<% reply.comments.each do |further_replies| %>
<% replies.push(further_replies) %>
<% end %>
<br>
<% end %>
<br>
<% end %>
<% end %>
</div>
各コメントを「返信」にプッシュし、各返信を 1 つずつ確認します。
各子コメントをインデントする良い方法はありますか?
ありがとう!