主动管理员不接受我的路线

时间:2013-03-06 00:14:13

标签: ruby-on-rails devise activeadmin

我在运行我的应用程序时遇到了一些问题。

1

我希望能够将有效管理员指向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

2

我的应用程序中的每个考试都有很多部分。 我想使用此代码为每个考试添加一个部件按钮。

# 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不会返回任何内容。 我做错了什么?

我正在运行

  • active admin 0.5.1
  • rails 3.2.12
  • ruby​​ 1.9.3

2 个答案:

答案 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注册区块的代码?根据我想要实现的目标,我可以通过多种方式建立这种关系。所以你可以给我的背景越多越好