Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将记录集合传递给部分_Ruby On Rails_Ruby_Ruby On Rails 4_Model View Controller - Fatal编程技术网

Ruby on rails 将记录集合传递给部分

Ruby on rails 将记录集合传递给部分,ruby-on-rails,ruby,ruby-on-rails-4,model-view-controller,Ruby On Rails,Ruby,Ruby On Rails 4,Model View Controller,我试图包含一个部分,并将一组记录(组织的主持人)传递给此部分。在我的组织控制器中,我有: def show @organization = Organization.friendly.find(params[:id]) @users = @organization.users @moderators = User.with_role(:moderator, @organization) end 显示组织视图(第一部分工作,但第二部分不工作): 结果是一条错误消息:未定义的局部变

我试图包含一个部分,并将一组记录(组织的主持人)传递给此部分。在我的组织控制器中,我有:

def show
  @organization = Organization.friendly.find(params[:id])
  @users = @organization.users
  @moderators = User.with_role(:moderator, @organization)
end
显示组织视图(第一部分工作,但第二部分不工作):


结果是一条错误消息:
未定义的局部变量或#
的方法“调节器”引用了部分中的

在版主部分中,我只想显示激活的版主:

<% if moderator.activated? %>
  <td><%= link_to moderator.username, user_path(moderator) %></td>
  <td><%= moderator.fullname %></td>
  <td>
    <%= link_to image_tag("delete.gif", title: "remove as moderator", class: 'profile-icon-small'), 
                data: { user_id: moderator.id, organization_id: @organization.id, method: :post, url: removemoderator_path, confirm: "Are you certain?" } %>
  </td>
<% end %>

试试这个

<%= render partial: 'users/moderator', collection: @moderators %>

您这里的问题是,该部分期望的是
用户
而不是
主持人
。本地名称是从类名而不是实例变量名推断出来的。它建议您可以传递一个:as选项,这样像
这样的东西可能会起作用。现在您正在通过相同的id查找用户和组织?您正在调用在没有接收器的用户上定义的方法?也许可以尝试
@user.remove_modrights(@organization)
,但我首先要确保这部分是真的
@user=user.friendly.find(params[:id])@organization=organization.friendly.find(params[:id])
,因为用户和组织总是共享同一个id似乎很奇怪。是的,我想我应该完全删除controller方法中的行
@user=user.friendly.find(params[:id])
。这是我们访问的组织页面,因此这是params中可用的id。所以用那个id搜索@user是没有意义的……是的,很好,现在它呈现页面。但是,部分中指向的链接不起作用。你是否也看到了问题所在?这一行应该发布到
删除版主路径
。我会将相关的路由和控制器方法添加到OP中。我已将其作为单独的问题发布在此处:。我尝试了你的建议,但仍然点击链接没有任何作用。
<%= render partial: 'users/moderator', collection: @moderators %>
<%= link_to image_tag("delete.gif", title: "remove as moderator", class: 'profile-icon-small'), 
            data: { user_id: user.id, organization_id: @organization.id, method: :delete, url: removemoderator_path, confirm: "Are you certain?" } %>
delete 'removemoderator/:id'=>  'users#remove_moderator', as: 'removemoderator'