2

「invite /:code」と一致するURL、つまりsign_up: 'invite/:code'にアクセスすると、sign_upページにのみアクセスできますsign_inページをデフォルト/同等の機能で維持してください。paramsを使用してsign_inとsign_up(セッション/登録)の別ルートを使用する方法

sign_upルートがうまく機能していますが、sign_inが壊れています。

devise_for :users, { 
    # skip: [:sessions], 
    controllers: { 
    omniauth_callbacks: "users/omniauth_callbacks", 
    registrations: "invite", 
    }, 
    path: '', 
    path_names: { 
    sign_up: 'invite/:code', 
    sign_in: 'sign_in' 
    } 
} 

# as :user do 
# get 'sign_in', to: 'devise/sessions#new', as: :new_user_session 
# post 'sign_in', to: 'devise/sessions#create', as: :user_session 
# delete 'sign_out', to: 'devise/sessions#destroy', as: :destroy_user_session 
# end 

コメントアウト行は、私はそれらを必要とする場合、私はわからない、およそ混乱していたものです:

routes.rbファイルには、次のコードが含まれています。

私は/sign_inを訪れたとき、私は次のエラーを取得する:

No route matches {:action=>"new", :controller=>"invite"}, missing required keys: [:code] 

sign_inはまだ確認してください、私のカスタム登録コントローラか何かを使用しないようにしようとしているようです。

マイrake routes出力このビット:ここ

new_user_session GET  /sign_in(.:format)    devise/sessions#new 
user_session POST  /sign_in(.:format)     devise/sessions#create 

がよりrake routesものです:私は馬鹿されていた

   new_user_session GET  /sign_in(.:format)       devise/sessions#new 
        user_session POST  /sign_in(.:format)       devise/sessions#create 
      destroy_user_session DELETE /sign_out(.:format)       devise/sessions#destroy 
user_facebook_omniauth_authorize GET|POST /auth/facebook(.:format)      users/omniauth_callbacks#passthru 
user_facebook_omniauth_callback GET|POST /auth/facebook/callback(.:format)    users/omniauth_callbacks#facebook 
       new_user_password GET  /password/new(.:format)      devise/passwords#new 
       edit_user_password GET  /password/edit(.:format)      devise/passwords#edit 
        user_password PATCH /password(.:format)       devise/passwords#update 
           PUT  /password(.:format)       devise/passwords#update 
           POST  /password(.:format)       devise/passwords#create 
     cancel_user_registration GET  /cancel(.:format)        invite#cancel 
      new_user_registration GET  /invite/:code(.:format)      invite#new 
      edit_user_registration GET  /edit(.:format)        invite#edit 
       user_registration PATCH /           invite#update 
           PUT /           invite#update 
           DELETE /           invite#destroy 
           POST /           invite#create 
+0

あなた 'すくいroutes'がどのように見えるか何を? –

+0

@WesFosterがその説明を更新しました – dezman

答えて

0

、エラーメッセージを注意深く十分に見ていません。エラーはnew_registration_pathヘルパー(sign_up)と呼ばれていた部分から来ており、私はcodeをパラメータとして渡していませんでした。

だから、解決策は、この変更することでした。これに

new_registration_path(resource_name) 

new_registration_path(resource_name, :code => 'foo') 
関連する問題