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 %>
增加完上面几步,就可以实现管理员登录后可以看到每一个游客评论了哪些文章,什么时间评论的,评论了什么 的功能
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论