如何使用集合从另一个控制器渲染部分?

时间:2013-04-09 15:10:23

标签: ruby-on-rails-3.2

我有一个仪表板控制器,它具有online_user的操作。在视图中,在仪表板下,我有一个部分_online_user.html.haml。在其中,我试图显示在线登录用户。代码如下:

 app/controllers/dashboard_controller 
  class DashboardController < ApplicationController
      def online_user
        @online_users = Profile.all(...)
     end
    end

app/views/dashboard/_online_user.html.haml


%li
  = link_to profile_path(online_user) do
    = online_user.name
    %i.icon-picture
    %i.icon-th-large
    %i.icon-camera
    %i.icon-facetime-video
    %span.help-block
      = online_user.try(:age) 
      - 
      = online_user.state.try(:name)
      ,
      = online_user.country.try(:name)

完成所有这些后,最后一件事就是在另一个视图中渲染它。对?像这样:

= render partial: "dashboard/online_user", collection: @online_users

然而,当我这样做时,我得到一个空白页面。什么都没有呈现。任何人的想法都非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否检查过@online_users是否包含任何内容,并且不为空? 此外,这可能会有所帮助:

= render partial: "dashboard/online_user", collection: @online_users, as: :online_user