インデックスアクションを特定の週に絞り込むための名前付きルートがあります
match "workouts/week/(:date)" => "workouts#index",
:constraints => { :date => /\d{4}-\d{2}-\d{2}/ },
:as => "workouts_date"
インデックスビューに特定の週のトレーニングのみが正しく表示されることをテストするための仕様を作成しようとしています。
it 'populates an array of workouts for the week of the given date' do
sunday_workout = FactoryGirl.create(:workout, date: Date.new(2012, 12, 31).beginning_of_week(:sunday))
today_workout = FactoryGirl.create(:workout, date: Date.new(2012, 12, 31))
saturday_workout = FactoryGirl.create(:workout, date: Date.new(2012, 12, 31).end_of_week(:sunday))
next_week_workout = FactoryGirl.create(:workout, date: Date.new(2012, 12, 31).next_week)
prev_week_workout = FactoryGirl.create(:workout, date: Date.new(2012, 12, 31).prev_week)
this_week_workouts = [sunday_workout, today_workout, saturday_workout].group_by(&:date)
get 'workouts/week/2012-12-31'
assigns(:workouts).should eq this_weeks_workouts
end
エラーが発生します:
Failure/Error: get 'workouts/week/2012-12-31'
AbstractController::ActionNotFound:
The action 'workouts/week/2012-12-31' could not be found for WorkoutsController
:index
アクションはインデックスですが、シンボルを提供する以外に、そこにルーティングする方法がわかりません。
編集:spec_helperファイルに以下を追加しました:
config.include Rails.application.routes.url_helpers
getリクエストをに変更しました
get workouts_date_path('2012-12-31')
しかし、私はまだ得ます
The action '/workouts/week/2012-12-31' could not be found for WorkoutsController