简体   繁体   English

NoMethodError(Admin :: Notification:Class的未定义方法“ all”)

[英]NoMethodError (undefined method `all' for Admin::Notification:Class)

I am getting this error when I am visiting this URL admin/notifications 访问此URL admin/notifications时出现此错误

I have moved controller and routes under admin scope 我已将控制器和路由移至管理范围内

NoMethodError (undefined method `all' for Admin::Notification:Class) NoMethodError(Admin :: Notification:Class的未定义方法“ all”)

Notifications controller 通知控制器

# app/controllers/admin/notifications_controller.rb
module Admin
  class NotificationsController < AdminController
    def index
      @notifications = Notification.all
    end
  end
end

Notification 通知

# app/models/notification.rb
class Notification < ActiveRecord::Base
  has_many :preferences
end

routes.rb 的routes.rb

MyApp::Application.routes.draw do
  namespace :admin do
    resources :notifications
  end
end

Routes 路线

    admin_notifications GET    /admin/notifications(.:format)           admin/notifications#index
                        POST   /admin/notifications(.:format)           admin/notifications#create
 new_admin_notification GET    /admin/notifications/new(.:format)       admin/notifications#new
edit_admin_notification GET    /admin/notifications/:id/edit(.:format)  admin/notifications#edit
     admin_notification GET    /admin/notifications/:id(.:format)       admin/notifications#show
                        PUT    /admin/notifications/:id(.:format)       admin/notifications#update
                        DELETE /admin/notifications/:id(.:format)       admin/notifications#destroy

Thanks 谢谢

Try ::Notification.all 试试::Notification.all

It should works. 它应该工作。

You are inside Admin module. 您在管理模块中。 Notification.all is searching for the Notification inside module named Admin Notification.all正在内部名为Admin模块中搜索Notification

::Notification indicate that Notification model is in global Module. ::Notification表示Notification模型在全局模块中。 So it should get the model and it should solved your error. 因此,它应该获得模型并应该解决您的错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM