あったらいいなぁ, login_context_helper
こんなコードが増えている。
class XxxxController < ApplicationController before_filter :bind_user def index end def hoge if @user.login? else end end def fuga if @user.login? else end end end
こんな風に書けたらすっきりしそう。
class XxxxController < ApplicationController before_filter :bind_user def index end login_user Proc.new { # actions that response to a login users def hoge end def fuga end }, Proc.new { # actions that response to a non-login users def hoge end def fuga end } end
要するに、コンテキスト(この場合ユーザーがログイン認証済みかしているかどうか)によって、アクションの定義位置を変えたい、というだけ。
あるいはアクション命名規則で、action_login と action で分けておいて、map.connect で見かけのURLは同じ、でもいいかもしれないけれども。この場合は、インターフェースとして明確に切り出せるから、少なくともテストケースの網羅性確認にはいいかもしれない。
自分で実装する気はないけど(あればいいなぁぐらいなので)、ふと思ったので。