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'