6

デバイスをインストールしました。
そして私はリンクを持っています:<%= link_to "Sign up", new_user_registration_path %>

ActiveAdmin (既存のモデル用User) をインストールすると、このリンクが機能しなくなりました。

undefined local variable or method `new_user_registration_path'

私は git diff を使用しroutes.rbましたが、ここにあります(追加された行は黒です):

ActiveAdmin.routes(self)
devise_for :users, ActiveAdmin::Devise.config

また<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>、現在につながる/admin/logout

どうすればこの問題を解決できますか?

レーキルート:

     admin_dashboard            /admin(.:format)                       {:action=>"index", :controller=>"admin/dashboard"}
         admin_codes GET        /admin/codes(.:format)                 {:action=>"index", :controller=>"admin/codes"}
                     POST       /admin/codes(.:format)                 {:action=>"create", :controller=>"admin/codes"}
      new_admin_code GET        /admin/codes/new(.:format)             {:action=>"new", :controller=>"admin/codes"}
     edit_admin_code GET        /admin/codes/:id/edit(.:format)        {:action=>"edit", :controller=>"admin/codes"}
          admin_code GET        /admin/codes/:id(.:format)             {:action=>"show", :controller=>"admin/codes"}
                     PUT        /admin/codes/:id(.:format)             {:action=>"update", :controller=>"admin/codes"}
                     DELETE     /admin/codes/:id(.:format)             {:action=>"destroy", :controller=>"admin/codes"}
         admin_users GET        /admin/users(.:format)                 {:action=>"index", :controller=>"admin/users"}
                     POST       /admin/users(.:format)                 {:action=>"create", :controller=>"admin/users"}
      new_admin_user GET        /admin/users/new(.:format)             {:action=>"new", :controller=>"admin/users"}
     edit_admin_user GET        /admin/users/:id/edit(.:format)        {:action=>"edit", :controller=>"admin/users"}
          admin_user GET        /admin/users/:id(.:format)             {:action=>"show", :controller=>"admin/users"}
                     PUT        /admin/users/:id(.:format)             {:action=>"update", :controller=>"admin/users"}
                     DELETE     /admin/users/:id(.:format)             {:action=>"destroy", :controller=>"admin/users"}
      admin_comments GET        /admin/comments(.:format)              {:action=>"index", :controller=>"admin/comments"}
                     POST       /admin/comments(.:format)              {:action=>"create", :controller=>"admin/comments"}
   new_admin_comment GET        /admin/comments/new(.:format)          {:action=>"new", :controller=>"admin/comments"}
  edit_admin_comment GET        /admin/comments/:id/edit(.:format)     {:action=>"edit", :controller=>"admin/comments"}
       admin_comment GET        /admin/comments/:id(.:format)          {:action=>"show", :controller=>"admin/comments"}
                     PUT        /admin/comments/:id(.:format)          {:action=>"update", :controller=>"admin/comments"}
                     DELETE     /admin/comments/:id(.:format)          {:action=>"destroy", :controller=>"admin/comments"}
    new_user_session GET        /admin/login(.:format)                 {:action=>"new", :controller=>"active_admin/devise/sessions"}
        user_session POST       /admin/login(.:format)                 {:action=>"create", :controller=>"active_admin/devise/sessions"}
destroy_user_session DELETE|GET /admin/logout(.:format)                {:action=>"destroy", :controller=>"active_admin/devise/sessions"}
       user_password POST       /admin/password(.:format)              {:action=>"create", :controller=>"active_admin/devise/passwords"}
   new_user_password GET        /admin/password/new(.:format)          {:action=>"new", :controller=>"active_admin/devise/passwords"}
  edit_user_password GET        /admin/password/edit(.:format)         {:action=>"edit", :controller=>"active_admin/devise/passwords"}
                     PUT        /admin/password(.:format)              {:action=>"update", :controller=>"active_admin/devise/passwords"}
                root            /                                      {:controller=>"codes", :action=>"list"}
                                /:controller(/:action(/:id(.:format)))

古いリビジョンをチェックアウトしましたが、ルートは次のとおりです。

        new_user_session GET    /users/sign_in(.:format)               {:action=>"new", :controller=>"devise/sessions"}
            user_session POST   /users/sign_in(.:format)               {:action=>"create", :controller=>"devise/sessions"}
    destroy_user_session DELETE /users/sign_out(.:format)              {:action=>"destroy", :controller=>"devise/sessions"}
           user_password POST   /users/password(.:format)              {:action=>"create", :controller=>"devise/passwords"}
       new_user_password GET    /users/password/new(.:format)          {:action=>"new", :controller=>"devise/passwords"}
      edit_user_password GET    /users/password/edit(.:format)         {:action=>"edit", :controller=>"devise/passwords"}
                         PUT    /users/password(.:format)              {:action=>"update", :controller=>"devise/passwords"}
cancel_user_registration GET    /users/cancel(.:format)                {:action=>"cancel", :controller=>"devise/registrations"}
       user_registration POST   /users(.:format)                       {:action=>"create", :controller=>"devise/registrations"}
   new_user_registration GET    /users/sign_up(.:format)               {:action=>"new", :controller=>"devise/registrations"}
  edit_user_registration GET    /users/edit(.:format)                  {:action=>"edit", :controller=>"devise/registrations"}
                         PUT    /users(.:format)                       {:action=>"update", :controller=>"devise/registrations"}
                         DELETE /users(.:format)                       {:action=>"destroy", :controller=>"devise/registrations"}
4

3 に答える 3

12

見逃している可能性があることの 1 つは、ユーザー モデルを「登録可能」として宣言して、Devise によって生成されたサインアップ ルートを取得することです。

次のようなものが必要です。

class User < ActiveRecord::Base
  # Include devise modules
  devise :database_authenticatable, :registerable, ...

私は一度この問題に遭遇しましたが、これがそれを解決したものです。

于 2014-03-12T00:54:04.167 に答える
1

routes.rb で、devise_for :users を指定します。これにより、デバイス ユーザーのルートが復元されます。

于 2014-03-07T10:27:44.967 に答える
1

一般ユーザーと管理者ユーザーの両方で同じモデルを使用しているようです。ActiveAdmin には、管理者用の別のモデルが必要です。ジェネレーターによって行われた変更を元に戻してから、これを実行してみてください。

rails generate active_admin:resource AdminUser
rake db:migrate

これAdminUserにより、サイトのユーザーとはまったく関係のないモデルが作成されます。

于 2012-08-15T03:01:46.257 に答える