当_user.html partial在不同的控制器中时,如何使用= render @users?

时间:2017-07-20 07:08:34

标签: ruby-on-rails-4

我在AdminUsers控制器中有以下代码

class AdminUsersController < ApplicationController
  def index
    @users = User.where(role: 'admin')
  end
end

我的index.html.haml看起来像这样

%table
  %thead
    %tr
      %th Name
      %th Age
      %th role
  %tbody
    = render @users

现在Rails正试图在_user.html.haml内找到UsersController部分内容,但我的部分内容在AdminUsersController内。有什么方法可以告诉Rails在AdminUsersController内寻找部分内容吗?

我可以通过在UsersController下移动我的部分或者像这样编写循环来解决错误:

 - @users.each do |user|
    %tr
      // code

但如果我可以使用rails = render @users

,那就太好了

1 个答案:

答案 0 :(得分:1)

您需要指定自定义部分路径并将@users集合传递给它。您的代码应如下所示:

= render partial: "admin_users/user", collection: @users

阅读Rendering Collections

的详细信息