这是我当前的控制器:
def show
@lesson = @current_user.lessons.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @lesson }
end
end
目前,用户只能访问自己的课程。如果他们转到 example.com/lessons/[其他人的公共课程ID],则不会显示。
如果lesson
表的列public
在其他人的课程中为真,我想让用户有权显示自己的课程或其他人的课程。我该怎么做?
这
似乎有效:
def show
begin
@lesson = @current_user.lessons.find(params[:id])
rescue ActiveRecord::RecordNotFound
@lesson = Lesson.where("public = ? AND id = ?", true, (params[:id]))[0]
end
respond_to do |format|
format.html # show.html.erb
format.json { render json: @lesson }
end
end
这有什么不安全或不可持续的吗?