yochiyochirb/kajaeru

current_user を直したい

Closed this issue · 0 comments

https://github.com/yochiyochirb/kajaeru/blob/master/app/controllers/application_controller.rb#L8-L20

  def current_user
    return nil unless session[:user_id]

    # NOTE 操作するリソースによって current_user の意味が変わるのはやめたほうがいいかも
    #      しれないような気がするが、具体的に「これは困りそう」といったケースが思い浮かばず、
    #      他のモデルやコントローラでの操作時にこのほうが自然な実装にできる気がしたので、
    #      こうして分岐させた。
    case controller_name
    when 'votes', 'members'
      Voter.find_by(member_id: session[:user_id])
    #when '結果'
    end
  end

とあるが、

https://github.com/yochiyochirb/kajaeru/pull/152/files#r57761902

のように可読性が下がったり、ほしい値のためにアソシエーションをいくつも辿らなければいけなかったりと

具体的に「これは困りそう」といったケース

が発生しつつあるので、これを変えたい。実際には Member クラスのインスタンスを返せばいいのではないかなと思っている。

影響範囲が大きそうなので、どこかのブランチに混ぜ込んだりはせず、個別の PR で対応したい。