我有一个课程模型和一个课程模型。当我在我的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