主页

在个人博客中增加了管理员登录后可以看到每一个游客评论了哪些文章,什么时间评论的,评论了什么

2023-08-19 05:36PM

1. 在app/controllers/comments_controller.rb中增加下面的代码:

 class CommentsController < ApplicationController
   def index
     @comments = Comment.all
     @comments = Comment.joins(:comment_user).where("comment_users.username LIKE ?", "%#{params[:username]}%") if params[:username].present?  
     @total_count = @comments.size
     @comments = @comments.order('created_at desc').page(params[:page]).per(15)
   end

2. 然后创建app/views/comments/index.html.erb文件

<h2 style='margin: 40px auto 25px 100px;'>
       管理员查看普通用户评论的文章列表
     </h2>
     <div style='margin: auto auto 25px 100px;'>
     <p>评论总数: <%= @total_count %></p>
     <%= paginate @comments %>
     </div>
     <div style='margin-left: 100px;'>
       <%= form_tag comments_path, method: :get do %>                                                 
         用户名: <%= text_field_tag :username, params[:username]%>
         <%= submit_tag "搜索" %>
       <% end %>
     </div>
     <table style='margin: 35px auto 20px 100px;'>
       <tr style='background-color: lightgray;'>
         <td>评论时间:</td>
         <td>评论用户:</td>
         <td>评论文章:</td>
         <td>评论内容:</td>
       </tr>

       <% @comments.each do |comment| %>
         <tr>
           <td><%= comment.created_at.strftime("%Y-%m-%d %I:%M%p")  %></td>
           <td><%= comment.comment_user.try(:username) %></td>
           <% if comment.article %>
             <td><%= link_to comment.article.title, "/articles/#{comment.article_id}" %></td>
           <% else %>
             <td>文章已删除</td>
           <% end %>
           <td><%= comment.content %></td>
         </tr>
       <% end %>
     </table>

3. 然后在app/views/layouts/application.html.erb中增加:

   <%= link_to '主页', articles_path, style: 'color: white; text-decoration: none; margin-left: 20px;' %>
   <% if session[:current_user].present? %>
     <%= link_to '查看评论列表', comments_path, style: 'color: white; margin-left: 20px; text-decoration: none;' %>
   <% end %>

增加完上面几步,就可以实现管理员登录后可以看到每一个游客评论了哪些文章,什么时间评论的,评论了什么 的功能

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论