Ruby 在 Rails - 管理员用户视图

Ruby on Rails - Admin User View

我正在 Rails 应用程序上开发 Ruby,其中用户有很多 post,每个 post 有很多评论。

在Admin/view/user.erb文件中,如何将一个输出到屏幕上:

*用户的 posts?

*每个 post?

的评论

您可能在 url 某处拥有用户 ID:按照惯例,您的路径可能是

/admin/users/:id

进入 Admin:UsersController

的表演动作

这有点像

@user = User.find_by_id(params[:id])

在你看来你有

<% @user.posts.each do %>
  <div class="user-post">
    <div class="posted-at">Posted at <%= post.created_at.strftime("%d/%m/%Y") %></div>
    <div class="post-body">
      <%= post.body %>
    </div>
    <% post.comments.each do |comment| %>
      <div class="comment">
        <div class="posted-at">Posted at <%= comment.created_at.strftime("%d/%m/%Y") %></div>
        <div class="post-body">
          <%= comment.body %>
        </div>    
      </div>    
    <% end %>
  </div>
<% end %>

您显然可以根据自己的要求进行定制。

这都是超级基本的东西。你读过很多关于 rails 的文章吗?这就是脚手架生成器会为您做的事情。

在用户 table 中添加布尔列 admin 并设置 1 如果您希望该用户是 admin

在用户模型中定义

def is_admin?
    admin == true 
end

在控制器用户操作中

@users = User.all

在user.erb文件中,可以列出所有用户

- @users.each do |user|
    = link_to user.name, show_users_path(user)

在控制器中显示动作

def show
    @user = User.find(params[:id])
end

然后在显示页面

= @user.name 
- @user.posts.each do |post|
    = post.data
    - post.comments.each do |comment|
        = comment.data