【问题标题】:Active admin won't accept my route活动管理员不会接受我的路线
【发布时间】:2013-03-06 00:14:13
【问题描述】:

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

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

我在跑步

  • 活动管理员 0.5.1
  • 导轨 3.2.12
  • 红宝石 1.9.3

【问题讨论】:

  • 到目前为止有什么解决方法吗?
  • 看起来您不需要添加自己的自定义管理路由。相反,您只需在(在我的情况下)app/admin/parts.rb 中定义关系。换句话说,添加belongs_to :exam 可以解决问题。
  • 关于第一项,您是否设法删除了 /admin ?
  • 不,我没能做到。

标签: ruby-on-rails devise activeadmin


【解决方案1】:

对于你的第一个问题,我的 routes.rb 上有这个

root to: "admin/dashboard#index"

在资源之后和devise_for之前,并且工作得很好!。

祝你好运!

【讨论】:

    【解决方案2】:

    “admin”是所有资源的默认命名空间。

    您可以像这样在注册块中显式关闭资源命名空间:

    ActiveAdmin.register Exam, :namespace => false  do
      ...
    end
    

    就您has_many: :parts 协会而言,您能否发布Parts 的注册块代码?根据我想要完成的任务,有几种方法可以建立这种关系。所以你能给我的上下文越多越好

    【讨论】:

      猜你喜欢
      • 2018-05-23
      • 2012-07-19
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      相关资源
      最近更新 更多