我在运行我的应用程序时遇到了一些问题。
我希望能够将有效管理员指向http://admin.lvh.me:3000/ 我尝试使用此代码,但它只显示索引页。
# config/routes.rb
scope :admin, constraints: { subdomain: "admin" } do
ActiveAdmin.routes(self)
devise_for :admin_users, ActiveAdmin::Devise.config.merge(path: "/")
end
# config/initializers/active_admin.rb
config.default_namespace = :admin
唯一有效的网址是http://admin.lvh.me:3000/admin
是否可以避免/admin
?
我的应用程序中的每个考试都有很多部分。 我想使用此代码为每个考试添加一个部件按钮。
# app/admin/exams.rb
ActiveAdmin.register Exam do
# ...
index do
column :actions do |exam|
link_to "Part", admin_exam_parts_path(exam)
end
default_actions
end
# ...
end
问题在于admin_exam_parts_path
不存在。
# config/routes.rb
scope :admin, constraints: { subdomain: "admin" } do
resources :exams do
resources :parts
end
ActiveAdmin.routes(self)
devise_for :admin_users, ActiveAdmin::Devise.config.merge(path: "/")
end
rake routes | grep /admin/exams/:exam_id/parts
不会返回任何内容。
我做错了什么?
我正在运行
答案 0 :(得分:0)
对于你的第一个问题,我在我的routes.rb上有这个问题
root to: "admin/dashboard#index"
资源之后和devise_for之前,并且工作得非常好!。
祝你好运!答案 1 :(得分:0)
“admin”是所有资源的默认命名空间。
您可以在注册块中显式关闭资源命名空间,如下所示:
ActiveAdmin.register Exam, :namespace => false do
...
end
就has_many: :parts
关联而言,您是否可以发布Parts
注册区块的代码?根据我想要实现的目标,我可以通过多种方式建立这种关系。所以你可以给我的背景越多越好