【发布时间】:2015-08-18 20:22:07
【问题描述】:
我的模型
class Course
has_many :lessons, through: :chapters
end
class Lesson
belongs_to :chapter
has_one :course, through: :chapter
end
class User
has_many :user_lessons
end
class UserLesson
#fields: user_id, lesson_id, completed(boolean)
belongs_to :user
belongs_to :lesson
end
class Chapter
has_many :lessons
belongs_to :course
end
我的 UserLesson 控制器:
class UserLessonsController < ApplicationController
before_filter :set_user_and_lesson
def create
@user_lesson = UserLession.create(user_id: @user.id, lession_id: @lesson.id, completed: true)
if @user_lesson.save
# redirect_to Course show action///// How can I redirect to that?
else
# take the appropriate action
end
end
end
基本上我想要的是重定向到有课程的课程的表演动作? (基本上是回到整个课程列表。课程嵌套在课程中)问题是找不到讲座ID。
No route matches {:action=>"show", :controller=>"lectures", :id=>nil} missing required keys: [:id]
Routes.rb
resources :courses do
resources :lessons
end
resources :user_lessons
发送数据到创建方法的链接
<%= link_to 'Back to Lesson list', user_lessons_path(@user_lesson, user_lesson: {user_id: 'current_user.id', lesson_id: 'lesson.id'}), :method => :post, data: {confirm: 'are you sure?'} %>
【问题讨论】:
-
你的 routes.rb 是什么样的?此外,您可能希望运行“rake routes”以查看路由名称以及它们需要的参数(如果有)
-
资源:课程做资源:课程结束
-
我用路由 rb 编辑了帖子。
-
这不在问题范围内,但仅供参考,我注意到您在多个地方使用了“lession”,我觉得应该是“教训”。怎么样,redirect_to @lesson.course
-
我收到了这个错误未定义的课程方法
标签: ruby-on-rails redirect routes nested-routes