これにif文を追加するにはどうすればよいですか?if文をドロップダウンする
<% = f.select(:manager_user_id、User.all.collect {|ユーザー| [user.full_name、user.id]}ソート{|、B | [0] < = > [0]}、B:プロンプト=> "プロジェクトマネージャを選択して")%>
が、それはユーザーが役割ProjectManager
if user.has_role? :ProjectManager
これにif文を追加するにはどうすればよいですか?if文をドロップダウンする
<% = f.select(:manager_user_id、User.all.collect {|ユーザー| [user.full_name、user.id]}ソート{|、B | [0] < = > [0]}、B:プロンプト=> "プロジェクトマネージャを選択して")%>
が、それはユーザーが役割ProjectManager
if user.has_role? :ProjectManager
が
01を試してみてください持っていることを確認するために、これを必要としますもちろん、DBからすべてのユーザーをフェッチするので、これは完全に間違っています。あなたは間違いなくこのように行かないといけません。私は@alassiterの修正された答えを追加して正しいものにしています。 – Gerry
この回答は、私が質問をしたときに私の頭に浮かんだ最初のアイデアです。今度はパフォーマンスの問題を引き起こすことに気付きました。私はあなたの答えがより良い解決であることを認めます。 –
だから、私は、ユーザーモデルにスコープを設定します:
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") %>
言うことができます。まだ勉強してる。
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
をソートしたい場合は、ユーザーがProjectManagerある場合は、選択のみ表示します?またはプロジェクトマネージャであるすべてのユーザをリストしたいとしますか? – Gerry
すべてのプロジェクトマネージャに選択を表示させたい – ahmet
ifステートメントを追加しないで、プロジェクトマネージャであるユーザーのみを選択します。 –