2012-03-03 75 views
0

我遇到了问题让Rails管理员与Heroku一起玩。当管理员登录在我得到一个路由错误,这里是错误: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 
+0

'rake routes'的输出是什么? – 2012-03-03 18:01:35

+0

这里是输出http://pastebin.com/raw.php?i=VRPcgXPJ – Dan 2012-03-03 18:14:23

+0

真的不需要使用pastebin。这仅仅意味着点击另一个链接,并没有提供比在此处有代码的附加功能。而且有可能这个链接将来会死掉。 – 2012-03-03 18:15:51

回答

1

对我来说,解决办法是改变

rails_admin.index_path 

rails_admin.dashboard_path 

不知道为什么它不工作的其他方式在生产周围,但这会做。

+0

rails_admin.index_path是一个集合级别的路由,你需要设置一个模型名称,我不知道它为什么在本地工作.. – 2012-03-19 14:14:48

+0

@BenoitB。你能解释一下你的意思是“收集水平”路线吗?或者指给我一个解释它的资源。另外你是什么意思,我需要设置一个模型名称。仍在学习Rails,试图理解正在发生的一切。 – Dan 2012-03-21 11:46:53

+1

索引路径需要RailsAdmin的模型:它是模型的索引页面。索引在RailsAdmin中称为集合动作(它适用于记录集合)。您要查找的是仪表板的路径,因此是dashboard_path。你可以看看那里的RailsAdmin路由:https://github.com/sferik/rails_admin/blob/master/config/routes.rb#L5 – 2012-03-23 12:58:06