2

私は同様の質問に対してこの答えに従おうとしましたが、私の場合はRolifyを使用しています。

私が遭遇している問題はpassthrough_controller.rb、Rolify.has_role?関数にアクセスできないところです。

class PassthroughController < ApplicationController
  def index
    if current_user.has_role? :admin
      redirect_to 'restaurants#index'
    else
      redirect_to 'http://www.google.com'
    end
  end
end

管理者の役割があることがわかっているユーザーを使用してログインしましたが、それでも自分のelse条項にリダイレクトされます。

これを行う方法については、 Rolifygithubページで何も見つかりませんでした。

どんな助けでも大歓迎です

4

2 に答える 2

0

解決策は実際には非常に単純でした。

プレフィックスを付ける必要がrestaurants#indexある/ので、コードは次のようになります。

  def index
    if current_user.has_role? :admin
      redirect_to '/restaurants#index'
    else
      redirect_to 'http://www.google.com'
    end
  end

routes.rbroot :to => 'restaurants#index')でルートを定義した方法であるため、最初はプレフィックスがありませんでした

于 2012-07-10T22:47:52.060 に答える
0

ルートまたはリダイレクトを使用するのではなく、レンダリングを使用してこれを行うことができるようです。

def index
    if current_user.has_role? :admin
      render "admin" # where admin.html.erb is in the same folder as index.html.erb
    else
      # do nothing - render default view
    end
end
于 2013-10-30T14:29:01.333 に答える