sql >> データベース >  >> RDS >> Mysql

現在のユーザーのデータとその名前をselectタグに表示します

    選択リストにcurrent_userをロードする必要がある理由がわかりません。ただし、ユーザーモデルの選択は次のようにカスタマイズできます。

    def user_for_select(user)
      self
        .where(id: user.id)
        .pluck("CASE WHEN id = #{user.id} THEN 'Me' ELSE name END AS name, id")
      end
    end
    

    編集はコメントに依存します:

    ユーザーモデルに次のメソッドを追加します。

    def is_manager?
       self.role == "manager"
    end
    

    次に、選択を次のように更新します。

    def user_for_select(user)
      if user.is_manager?
          self
            .pluck("CASE WHEN id = #{user.id} THEN 'Me' ELSE name END AS name, id")
            .unshift(['All', 'all'])
      else
           self
             .where(id: user.id)
             .pluck("CASE WHEN id = #{user.id} THEN 'Me' ELSE name END AS name, id")
      end
    end
    


    1. SQLで数値を丸める方法

    2. MySQLがミリ秒/マイクロ秒の精度をサポートしていないのはなぜですか?

    3. MySQL IFNULL ELSE

    4. テーブル[テーブル名]はロックされていません