我有一個課程模型和一個課程模型。當我在我的route.rb中嵌套這兩個模型時,我會得到以下路徑。如何防止硬編碼下面的代碼?
course_lessons GET /courses/:course_id/lessons(.:format) lessons#index
POST /courses/:course_id/lessons(.:format) lessons#create
new_course_lesson GET /courses/:course_id/lessons/new(.:format) lessons#new
edit_course_lesson GET /courses/:course_id/lessons/:id/edit(.:format) lessons#edit
course_lesson GET /courses/:course_id/lessons/:id(.:format) lessons#show
PATCH /courses/:course_id/lessons/:id(.:format) lessons#update
PUT /courses/:course_id/lessons/:id(.:format) lessons#update
DELETE /courses/:course_id/lessons/:id(.:format) lessons#destroy
courses GET /courses(.:format) courses#index
POST /courses(.:format) courses#create
new_course GET /courses/new(.:format) courses#new
edit_course GET /courses/:id/edit(.:format) courses#edit
course GET /courses/:id(.:format) courses#show
PATCH /courses/:id(.:format) courses#update
PUT /courses/:id(.:format) courses#update
DELETE /courses/:id(.:format) courses#destroy
有了這個,我似乎有硬編碼在我看來文件COURSE_ID <li><%= link_to "new lesson", new_course_lesson_path(course_id: 1) %></li>
創造屬於某一課程的一課。
但是,當我不在我的route.rb文件中嵌套課程和課程時,我可以前往new.html.rb文件獲取課程並創建課程,然後爲課程分配course_id 。
但我覺得嵌套這兩個資源比分離它們要乾淨得多。
哪個更好?有沒有辦法可以防止硬編碼course_id?
哦,好吧,所以我必須在我的lessons_controller.rb中實例化@course。這個實例背後的原因是什麼? – joshua