Rails options_from_collection_for_select отображать всех пользователей кроме текущего пользователя - PullRequest
0 голосов
/ 07 января 2019

У меня есть модуль передачи, где я хочу отобразить все возможные получатели внутри options_from_collection_select . Мне удалось отобразить всех пользователей, но я хочу, чтобы он не отображал текущее имя пользователя из выбора, потому что пользователь не должен получать свой собственный перевод. Это то, что у меня есть сейчас: пожалуйста, нажмите на изображение . В настоящее время я использую учетную запись 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>

1 Ответ

0 голосов
/ 07 января 2019

Контроллер

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...