0

User db テーブル内のすべてのメールを表示するフォーム ドロップダウンがあります。

  <%= f.collection_select(:accessor_id, User.all,:email ,:email) %>

このリストから、現在のユーザーの電子メールの値を除外したいです。これは、で見つけることができますcurrent_user.email(すでに定義されており、機能しています)

次のクエリを使用してこれを達成できることを知っています。

  <%= f.collection_select(:accessor_id, User.select(:email).where("email !=?" , current_user.email),:email ,:email) %>

User.all がすべての値を返した後、これが可能かどうかを知りたかったのです。

4

2 に答える 2

3

あなたは次のようなことを意味します

User.all.reject {|user| user == current_user}

またはより正確には、コントローラーのどこかにあるすべてのユーザーをフェッチします

def index
  @users = User.all
end

フォームでそのようなものを使用します

<%= f.collection_select(:accessor_id, @users.reject {|user| user == current_user}.map(&:email)) %>
于 2013-10-13T14:29:23.440 に答える