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

时间:2013-01-28 22:56:33

标签: ruby-on-rails ruby-on-rails-3

这是我当前的控制器:

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在其他人的课程中为真,我想让用户可以显示自己的课程或其他人的课程。我怎么能这样做?

1 个答案:

答案 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

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