这是我当前的控制器:
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
在其他人的课程中为真,我想让用户可以显示自己的课程或其他人的课程。我怎么能这样做?
答案 0 :(得分:0)
这似乎有效:
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
这有什么不安全或不可持续的吗?