我有一个传输模块,我想在其中在options_from_collection_select 中显示所有可能的接收者。我设法显示了所有用户,但我希望它不显示所选内容中的当前用户名,因为用户不应该收到自己的转让。这就是我现在拥有的:please click for the image。我目前正在使用ADMIN帐户,并且您可以看到它显示在select标签上。我只希望它被隐藏。这是我的代码:
_form.html.erb:
<div class="form-group">
<div class="col-md-4">
<%= f.label :administrator, "To be Receive by", class: "control-label" %>
<%= f.select :administrator_id,options_from_collection_for_select(@administrators.order("name"), :id, :name, :selected => f.object.administrator_id),{}, class:"select2 form-control", include_blank: 'Select Receiver',required: true %>
</div>
</div>
答案 0 :(得分:2)
控制器
class UserController < ApplicationController
def index
@users = User.where.not(:id=>current_user.id)
end
end
您可以在视图中访问实例变量@users
您可以使用下面
my explanation
给出的作用域变量
模型
class User < ApplicationRecord
scope :all_except, ->(user) { where.not(id: user) }
end
在您的
controller
中访问范围变量
控制器
@users = User.all_except(current_user)