Выпадающее если заявление - PullRequest
0 голосов
/ 19 октября 2011

Как мне добавить оператор if к этому?

<% = f.select (: manager_user_id, User.all.collect {| пользователь | [user.full_name, user.id]}. sort {| a, b | a [0] <=> b [0]},: prompt => «Выберите менеджера проекта»)%>

это необходимо для проверки того, что у пользователя есть роль ProjectManager

if user.has_role? :ProjectManager

Ответы [ 3 ]

1 голос
/ 19 октября 2011

Итак, я бы настроил область действия в пользовательской модели:

scope :project_managers, where(...)

Тогда вы можете сказать

<%= f.select(:manager_user_id, User.project_managers.select { |user| user.has_role?(:ProjectManager) }.collect {|user| [user.full_name, user.id]}.sort{|a, b| a[0] <=> b[0]}, :prompt => "Select a Project Manager") %>

Я думаю, что это правильно. Я все еще учусь.

0 голосов
/ 19 октября 2011
class User < ActiveRecord::Base
   scope :project_managers, where(...)
end

Затем, по вашему мнению, напишите

<%= f.collection_select(:manager_user_id, User.project_managers, :full_name, :id, :prompt => "Select a Project Manager") %>

Если вы хотите отсортировать, просто сделайте это в вашей области видимости или в вашем методе экземпляра :project_managers

0 голосов
/ 19 октября 2011

Попробуйте

<%= f.select(:manager_user_id, User.all.select { |user| user.has_role?(:ProjectManager) }.collect {|user| [user.full_name, user.id]}.sort{|a, b| a[0] <=> b[0]}, :prompt => "Select a Project Manager") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...