#・はじめに
Routingネスト時の単体テストについて備忘録として残します。
#1. 前提条件
まず以下の様にpostテーブルが存在しているとします、
create_table "posts", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "content", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "group_id"
t.integer "user_id"
end
そして以下の様にgroup配下にネストされている状態です。
resources :groups do
resources :posts, only: %i[new create edit update]
end
#2.結論
そこまで難しいことでは無いので結論を書きます。
上記の様な条件ならば
期待する動作に親モデルidのパラメーターを渡してあげるだけでした
(私はわざわざ親モデルを直接作成しようとして大ハマりしました)
before do
get :new, params: { group_id: group.id }
end
すごくシンプルにハッシュ形式で覚える事が出来ました。