如何从collection_select列表中排除某个选择?

时间:2016-02-17 15:40:33

标签: ruby-on-rails ruby sqlite

我只有一个collection_select,允许用户选择共享相同business.id的任何用户。它使用在Ruby中创建的列表@colleagues

#events_controller#new
@colleagues = User.where(business_id: current_user.business_id)


#events/new.html.erb
<%= f.collection_select :id,
                        @colleagues,
                        :id,
                        :full_name %>

但目前,此列表包含 current_user,我不想发生这种情况(用户 无法自己选择它们)。 有没有办法可以从此列表中排除current_user查询数据库?我正在使用SQLite。

谢谢,任何进一步的解释都会非常感激,因为我不熟悉Ruby和SQL。

3 个答案:

答案 0 :(得分:2)

@colleagues = User.where(business_id: current_user.business_id).where.not(id: current_user.id)

答案 1 :(得分:1)

您可以传递给collection_select类似

的内容
@colleagues.reject {|user| user.id == current_user.id }

答案 2 :(得分:0)

此代码在rails 6.0.0中对我有效

form.collection_select :parent_id, Collection.all.where.not(id: collection.id), :id, :title