2017-09-18 7 views
-1

私の目標は、ある特定のrole(この場合は "editor")のユーザーのみがアクセスできるスコープを作成することです。むしろ管理者と編集者によって。新しいスコープをDeviseに追加する

私はdeviseを使用しています。ここに私の試みの一部です:

scope "/editor" do 
    devise_for :editors 

    # ...other routes 
end 

「レール・サーバ」を介してそれを実行している:

/home/user123/.gem/ruby/2.4.1/gems/activesupport-5.1.3/lib/active_support/inflector/methods.rb:269:in `const_get': uninitialized constant Editor (NameError) 

は、私はそれをどのように修正する必要がありますか?

答えて

0

scope引数を誤解していると思います。特定のビューでアクセスを制限する場合は、次の操作を実行できます。通常のユーザーだけがインデックスにアクセスしてアクション/ビューを表示できるビデオストリーミングサービスがあるとしますが、管理者は残りを見ることができます(neweditなど)。

あなたはそれがあなたのvideos_controller.rbで今

module IsAdmin 
    extend ActiveSupport::Concern 

    def admin? 
    return redirect_to videos_new, alert: "Access Denied" unless current_user.admin? 
    end 
end 

をadmin.rb懸念(DRYグーグル)app/controllers/concerns/でと名前を作るには、我々だけで作られた懸念を含めると、使用したいビューするコントローラを伝えます管理者ですか?方法。

Class VideosController < Applicationcontroller 
    include IsAdmin 
    before_action :admin?, only: [:new, :edit] 
end 
+0

あなたは私の質問を誤解していると思います。 – Dodge

関連する問題