如何授予用户在 Rails 中显示自己的内容或公共内容的权限



这是我当前的控制器:

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

这有什么不安全或不可持续的吗?

相关内容

  • 没有找到相关文章

最新更新