2016-01-15 2 views
0

Привет, ребята, я новичок в Ruby и задавался вопросом, был ли способ использовать выбор коллекции, чтобы предоставить пользователю список других пользователей, которые используют один и тот же business_id как их.Использование Collection_select для отображения списка имен на основе текущего пользователя

На данный момент мой collection_select позволяет выбрать каждый пользователь в базе данных:

<%= f.collection_select :id, Customer.all, :id, :full_name, :prompt => 'Select' %> 

мне было интересно, если я мог бы сделать что-то вроде

<%= f.collection_select :id, User.find_by_business_id(current_user.business_id), ... %> 

, но это не работает.

current_user является метод, определенный в applications_controller найти текущего пользователя, который вошел в систему.

Пожалуйста, помогите, как я новичок в рельсах и не смогли найти решение! спасибо

+1

Что не сработало? – Pavan

ответ

1

Все, что вам нужно сделать, это создать запрос, чтобы получить список пользователей, которые делят бизнес-идентификатор с текущим пользователем. Вместо того, чтобы:

<%= f.collection_select :id, User.all, :id, :full_name, :prompt => 'Select' %> 

Вы хотите заменить User.all с подмножеством пользователей. Предполагая, что поле называется business_id как в таблице пользователей и в CURRENT_USER, это, вероятно, что вы хотите:

<%= f.collection_select :id, User.where(business_id: current_user.business_id), :id, :full_name, :prompt => 'Select' %> 

Что линия User.where(business_id: current_user.business_id) делает это дает набор пользователей, чей столбец business_id содержит определенное значение (в этом случае то же значение, что и current_user).

Если вы не знакомы с .where() или интерфейсом запроса активной записи, я настоятельно рекомендую вам прочитать до this documentation на досуге.

Добавление:

В ответ на ваши самые последние обновления на вопрос, вы не хотите использовать метод .find_by_business_id(). Это приведет только к возврату единственного результата (первая запись соответствует его критериям.

+1

Извините, где бы я ни находился, я имел в виду пользователя! Вы исправили его, и я прочитаю документацию спасибо –

Смежные вопросы