routes.rbでデフォルト値投入をまかなう。
退職に当たって立て続けに発生した外呑みで、しゃべりで普段使わない喉を酷使したら喉風邪みたいになってる。
前提
get 'reports/:yyyymm', to: 'reports#index'
get 'reports', to: 'reports#index'
yyyymm
なしでのアクセスでは今日のやつを入れたい。- controllerでは
yyyymm
が必ず来る前提で書いてすっきりしたい。
いけた
いろいろあって結局リダイレクトになった。
get 'reports/:yyyymm', to: 'reports#index'
get 'reports', to: redirect { "reports/#{Date.today.yyyymm}" }
だめだった
Defining Defaults
get 'reports', to: 'reports#index', yyyymm: Date.today.yyyymm
未来永劫起動時のyyyymm
が来た。
get 'reports', to: 'reports#index', yyyymm: ->{ Date.today.yyyymm }
expected: "201507"
got: #<Proc:0x007fcec1899b48@/home/ten/Dropbox/gems/dummy_app/config/routes.rb:3 (lambda)>
:pensive:
Redirection
get 'reports', to: redirect("reports/#{Date.today.yyyymm}")
未来永劫。
ところで
get 'reports', to: 'reports#index', yyyymm: Date.today.yyyymm
it do
get :index
expect(assigns(:yyyymm)).to redirect_to(Date.today.yyyymm)
end
で
ActionController::UrlGenerationError:
No route matches {:action=>"index", :controller=>"reports"}
どうすれば。