2012-03-03 80 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