Phi*_*lip 5 ruby inheritance routes model ruby-on-rails
使用Rails和控制器继承.
我创建了一个名为的控制器AdminController,其中有一个名为admin_user_controllerplace 的子类/app/controllers/admin/admin_user_controller.rb
这是我的routes.rb
namespace :admin do
resources :admin_user # Have the admin manage them here.
end
Run Code Online (Sandbox Code Playgroud)
应用程序/控制器/管理/ admin_user_controller.rb
class AdminUserController < AdminController
def index
@users = User.all
end
end
Run Code Online (Sandbox Code Playgroud)
应用程序/控制器/ admin_controller.rb
class AdminController < ApplicationController
end
Run Code Online (Sandbox Code Playgroud)
我有一个用户模型,我想用管理员权限编辑.
当我尝试连接到: http://localhost:3000/admin/admin_user/
我收到此错误:
superclass mismatch for class AdminUserController
Run Code Online (Sandbox Code Playgroud)
如果您使用不同的超类定义两次相同的类,则会显示此错误.也许尝试class AdminUserController在代码中使用grepping ,这样你就可以确定你没有定义它两次.有可能与Rails生成的文件发生冲突.
要完成@Intrepidd所说的内容,你可以将你的类包装在一个模块中,这样AdminUserController该类就不会继承两次ApplicationController,所以一个简单的解决方法是:
module Admin
class AdminUserController < AdminController
def index
@users = User.all
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5344 次 |
| 最近记录: |