0

ユーザー認証にDeviseを使用していますが、「myaccount」というUserクラス用に設定したカスタムアクションにユーザーをリダイレクトしたいと考えています。ただし、構文を正しく取得できません。試行中のすべてでさまざまなエラーが発生します。

このコードは、私が達成しようとしていることを示している可能性があります (ただし、機能しません)。

def after_sign_in_path_for(resource)
    redirect_to :controller => 'users', :action => 'myaccount', :id => current_user.id and return
  end

そしてルート:

 devise_for :users, :controllers => { :registrations => "registrations" }

  devise_for :users 

  resources :users do
    member do
      get 'myaccount'
    end
  end

申し訳ありませんが、それはおそらくかなり初心者の質問です-しかし、リダイレクトを変更するか、新しいルートを追加して、たとえばuser_sign_in_pathが機能するようにするにはどうすればよいですか?

ありがとう!

アップデート:

他の誰かがこの質問を見つけた場合、これが私にとってうまくいきました:

url_for :controller => '/users', :id => current_user.id, :action => 'myaccount'

これは私が必要とする正しい順序です。Devise コントローラーの代わりにそれを使用するようにするには、コントローラー名の前にスラッシュを付ける必要がありました。

4

1 に答える 1

0

you don't have to call redirect_to

def after_sign_in_path_for(resource)
  { controller: 'users', action: 'myaccount', id: current_user.id }
end

if that doesn't work, wrap that up in url_for and that should work :)

于 2013-03-01T11:31:51.487 に答える