0

私は認証にdeviseを使用しており、認証されたユーザーをlocations#showにルーティングしたいと考えています。ユーザーは場所に属しています。ルートでこれを含むいくつかのことを試しました

authenticated :user do
    match 'locations/:id' => 'locations#show', :as => :root
  end

残念ながら、それは変更されず、ログインしても home#index にルーティングされます。私の完全なルートファイル

 authenticated :user do
    match 'locations/:id' => 'locations#show', :as => :root
  end
  root :to => "home#index"
  resources :locations
  devise_for :users
  resources :users

ユーザーがログインしているときにルートに場所IDを表示させる方法についてのアイデアはありますか?

4

3 に答える 3

1

端末で次のコマンドを実行すると、devise に関連する利用可能なすべてのルートを確認できます。

rake routes
于 2013-01-08T07:21:02.340 に答える
0

最初に、アプリケーションコントローラーでサインイン後のパスを定義することになりました

def after_sign_in_path_for(resource)
    if resource.class == User
      location_path(resource.location) 
    elsif resource.class == Location
      location_path(resource) 
    end
  end

次に、このようにルートを設定します

 authenticated :user do
    devise_for :users do
      get "/", :to => "devise/sessions#new"
    end
    root :to => 'devise/sessions#new'
  end  
于 2013-01-08T22:16:15.787 に答える