質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

  • Ruby on Rails

    7646questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

namespaceを利用した際のgem:deviseのパス

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 382

innjera

score 103

ruby on rails 5.0.0.1を利用しています。

ログイン機能としてgem:deviseを利用しているのですが、以下route.rbにて生成されるルートの中で、devise/registrations#newを呼び出すためのルートnew_user_registration_pathを利用すると、以下エラーを出してしまいます。new_registration_path(resource_name)を利用すれば、devise/registrations#newを呼び出せるのですが、理由が分からず、ご指南頂けますと助かります。

#routes.rb
devise_for :users, :path => "user", controllers: { sessions: 'user/sessions' }

  namespace :user do
      root 'products#index'
      get 'top' => 'top#index'
      resource :account, only:[:show, :edit, :update]
      resources :users do
        resources :products
      end
      resources :products do
        collection do
          get "search"
          get "voted"
        end
        member {patch "like", "unlike" }
        resources :entries, only: [:create] do
          patch :cancel, on: :member
        end
        resources :messages, except: [:edit] do
          post :confirm, on: :collection
          get :count, on: :collection
          get :inbound, :outbound, :count, on: :collection
          resource :reply, only: [ :new, :create ] do
            post :confirm
          end
        end
        patch :entries, on: :member
      end
    end


生成されるルート
イメージ説明

rails routes
                            Prefix Verb   URI Pattern                                                             Controller#Action
                  new_user_session GET    /user/sign_in(.:format)                                                 user/sessions#new
                      user_session POST   /user/sign_in(.:format)                                                 user/sessions#create
              destroy_user_session DELETE /user/sign_out(.:format)                                                user/sessions#destroy
                     user_password POST   /user/password(.:format)                                                devise/passwords#create
                 new_user_password GET    /user/password/new(.:format)                                            devise/passwords#new
                edit_user_password GET    /user/password/edit(.:format)                                           devise/passwords#edit
                                   PATCH  /user/password(.:format)                                                devise/passwords#update
                                   PUT    /user/password(.:format)                                                devise/passwords#update
          cancel_user_registration GET    /user/cancel(.:format)                                                  devise/registrations#cancel
                 user_registration POST   /user(.:format)                                                         devise/registrations#create
             new_user_registration GET    /user/sign_up(.:format)                                                 devise/registrations#new

イメージ説明

上記エラーを出すパス

<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
  <%= link_to "Sign up", new_user_registration_path(resource_name) %><br />
<% end -%>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Ruby on Rails

    7646questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。