我的@userGroups
中有一个用户列表,我在select_tag
中使用了options_for_select
。它就像一个魅力;但当我在页面groups/4/
时,我想在选择框中显示不包括第4组的选择框。
知道怎么做吗?
<%= select_tag(:group_id,
options_for_select(
@userGroups.collect{ |u| [u.name, u.id] }
),
:prompt => "Choose group",
:id => "moveClientsToGroup") %>
做了一个小测试:
<% @a = current_user.groups.where("id <> ?", params[:id]) %>
<% @a.each do |f| %>
<%= f.name %>
<% end %>
抛出:SQLite3::SQLException: ambiguous column name: id: SELECT "groups".* FROM "groups" INNER JOIN "groupusers" ON "groups"."id" = "groupusers"."group_id" WHERE "groupusers"."user_id" = ? AND (id != '4')
答案 0 :(得分:1)
在控制器内的索引操作中,您有参数。因此,当您填充列表userGroups
时,可以这样做:
if params[:id]
@userGroups = UserGroup.where("id <> ?", params[:id])
else
@userGroups = UserGroup.all
end
P.S。:我不知道模型名称是否是UserGroup,我只是猜测,这是一个例子,所以你可以得到这个想法。