【问题标题】:Routing Error with Rails Admin and HerokuRails Admin 和 Heroku 的路由错误
【发布时间】:2012-03-03 17:59:16
【问题描述】:

我在让 Rails Admin 与 Heroku 配合使用时遇到问题。管理员登录时出现路由错误,错误如下:

No route matches {:controller=>"rails_admin/main"}

我相信这个错误的发生是因为我的application.html.erb 中的这段代码:

<% if current_admin  %>
    <%= link_to "Admin Dashboard", rails_admin.index_path %>
<% end %>

当我在link_to 中调用rails_admin.index_path 时似乎会发生这种情况。但是,如果我转到myurl/admin,它可以让我很好地看到管理仪表板。此外,在我本地的开发和生产环境中一切正常。

rake routes的输出:

             rails_admin        /admin                         RailsAdmin::Engine
             users_index GET    /users/index(.:format)         users#index
              users_show GET    /users/show(.:format)          users#show
                                /user/:id(.:format)            users#show
        new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
            user_session POST   /users/sign_in(.:format)       devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
           user_password POST   /users/password(.:format)      devise/passwords#create
       new_user_password GET    /users/password/new(.:format)  devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
                         PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
       user_registration POST   /users(.:format)               devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
                         PUT    /users(.:format)               devise/registrations#update
                         DELETE /users(.:format)               devise/registrations#destroy
           welcome_index GET    /welcome/index(.:format)       welcome#index
                   songs GET    /songs(.:format)               songs#index
                         POST   /songs(.:format)               songs#create
                new_song GET    /songs/new(.:format)           songs#new
               edit_song GET    /songs/:id/edit(.:format)      songs#edit
                    song GET    /songs/:id(.:format)           songs#show
                         PUT    /songs/:id(.:format)           songs#update
                         DELETE /songs/:id(.:format)           songs#destroy
                    root        /                              welcome#index

Routes for RailsAdmin::Engine:
    dashboard GET         /                                      rails_admin/main#dashboard
        index GET|POST    /:model_name(.:format)                 rails_admin/main#index
          new GET|POST    /:model_name/new(.:format)             rails_admin/main#new
       export GET|POST    /:model_name/export(.:format)          rails_admin/main#export
  bulk_delete POST|DELETE /:model_name/bulk_delete(.:format)     rails_admin/main#bulk_delete
history_index GET         /:model_name/history(.:format)         rails_admin/main#history_index
  bulk_action POST        /:model_name/bulk_action(.:format)     rails_admin/main#bulk_action
         show GET         /:model_name/:id(.:format)             rails_admin/main#show
         edit GET|PUT     /:model_name/:id/edit(.:format)        rails_admin/main#edit
       delete GET|DELETE  /:model_name/:id/delete(.:format)      rails_admin/main#delete
 history_show GET         /:model_name/:id/history(.:format)     rails_admin/main#history_show
  show_in_app GET         /:model_name/:id/show_in_app(.:format) rails_admin/main#show_in_app

【问题讨论】:

  • rake routes 的输出是什么?
  • 真的没必要用pastebin。它只是意味着单击另一个链接,并且除了在此处提供代码之外没有提供其他功能。而且该链接将来可能会失效。
  • 哦,好的。我将来会这样做。谢谢!

标签: ruby-on-rails rails-admin


【解决方案1】:

我的解决方案是改变

rails_admin.index_path

rails_admin.dashboard_path

不知道为什么它在生产中不起作用,但它会起作用。

【讨论】:

  • rails_admin.index_path 是一个集合级别的路由,需要设置模型名,不知道为什么在本地有效..
  • @BenoitB。你能解释一下“收藏级”路线是什么意思吗?或指向我解释它的资源。另外你是什么意思我需要设置一个模型名称。仍在学习 Rails,试图了解正在发生的一切。
  • 索引路径需要 RailsAdmin 的模型:它是模型的索引页面。索引在 RailsAdmin 中称为集合操作(​​它适用于记录集合)。您正在寻找的是仪表板的路径,因此是dashboard_path。您可以在那里查看 RailsAdmin 路由:github.com/sferik/rails_admin/blob/master/config/routes.rb#L5
猜你喜欢
  • 2013-11-20
  • 2013-10-13
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
相关资源
最近更新 更多