2012-09-07 39 views
6

Tôi đang làm bảng quản trị trong ứng dụng của tôi, tôi đã thực hiện bộ điều khiển sử dụng giàn giáo cho admin (User mẫu đã tồn tại) như thế này:ray không gian tên chưa được khởi tạo liên tục

rails g scaffold_controller Admin::User username:string password_digest:string role:string 

và trong tuyến

namespace :admin do 
resources :users 
resources :dashboard 
end 

và controllers/admin/users_controllers.erb trông giống như

class Admin::UsersController < ApplicationController 
    # GET /admin/users 
    # GET /admin/users.json 
    def index 
    @admin_users = Admin::User.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @admin_users } 
    end 
    end 

nên khi tôi đi đến url/admin/người sử dụng tôi đã nhận sau ing lỗi:

NameError in Admin::UsersController#index 

uninitialized constant Admin::User 

Làm thế nào để tôi giải quyết vấn đề này

Cảm ơn

+0

Ứng dụng/mô hình/quản trị viên/người dùng.rb' trông như thế nào? – rubiii

Trả lời

5

Nếu bạn từ trước User mô hình được không namespaced, hãy thử thay thế

@admin_users = Admin::User.all 

với

@admin_users = ::User.all 
+0

@admin_users = :: User.all cung cấp lỗi đường dẫn: phương thức undefined 'user_path ' – Jawad

+0

Mã được tạo bởi giàn giáo dự kiến ​​mô hình' Người dùng' của bạn nằm trong mô-đun 'Quản trị', giống như bộ điều khiển. Hãy chắc chắn rằng 'routes.rb' của bạn có một cái gì đó như' namespace: admin {resources: users} '; sau đó đi đến 'app/views/admin/users/index.html.erb' của bạn và thay đổi' link_to 'Show', admin_user' thành 'link_to 'Show', admin_user_path (admin_user)'; và 'link_to 'Destroy', admin_user, ...' thành 'link_to 'Destroy', admin_user_path (admin_user), ...'. –

+0

Cảm ơn, vì sự hỗ trợ của bạn – Jawad

3

Tôi nghĩ rằng các máy phát điện không tạo ra các mô hình thư mục/quản trị, do đó bạn nên gọi User.all và không Admin :: User.all.

Kiểm tra nếu user.rb là trong các mô hình hoặc các mô hình/admin ...

+0

không có mô hình thư mục/quản trị viên ... tôi có phải tạo các mô hình riêng cho không gian tên quản trị hay không, Ngoài ra User.all cũng cung cấp lỗi đường dẫn "phương pháp chưa xác định' user_path '" – Jawad

+0

Nếu bạn muốn có ... nhưng nó không phải là cần thiết. Tôi nghĩ trong trường hợp của bạn, bạn không muốn điều đó. Người dùng phải ở trong các mô hình thư mục và sau đó bạn sẽ luôn gọi cho User.all. – tbem

+0

cung cấp cho các tuyến đường lỗi "undefined method' user_path '"điều này là bởi vì bạn không có users_controller nhưng thay vì admin_users_controller, vì vậy bạn có admin_users_path chứ không phải user_path ... và trong route bạn có một namespace: admin do resources: người dùng chứ không phải tài nguyên: người dùng bên ngoài quản trị không gian tên – tbem

0

Trong trường hợp đặc biệt của tôi, tôi đã đặt tên các tập tin và các lớp học một cách chính xác nhưng chứa thư mục được đặt tên sai.

tôi đã:

/models/maps/type.rb 

tôi đã phải thay đổi nó để:

/models/map/type.rb 

Thông báo tên thư mục duy nhất. Thay đổi nó thành Rails cho phép số ít để tự động nạp đúng class và không còn lỗi này khi chạy.

Các vấn đề liên quan