2012-03-03 8 views
0

Rails AdminがHerokuとうまくやっている問題があります。私はこのエラーが私のapplication.html.erbであるため、このコードが原因で発生信じるRails AdminとHerokuでルーティングエラーが発生する

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

:管理者がログインしているとき、私はここでは、ルーティングエラーをエラーされて取得しています

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

それはときに発生するようです私はlink_torails_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'の出力は何ですか? –

+0

ここに出力がありますhttp://pastebin.com/raw.php?i=VRPcgXPJ – Dan

+0

実際にはpastebinを使う必要はありません。これは単に別のリンクをクリックすることを意味し、ここにコードを置く以外の機能はありません。そして、将来リンクが死んでしまう可能性があります。 –

答えて

1

、それは他の方法で動作しない理由を私のためのソリューションは

rails_admin.dashboard_path 

rails_admin.index_path 

を変更したか分からないのですか生産の周りにこれが行います。

+0

rails_admin.index_pathはコレクションレベルのルートで、モデル名を設定する必要がありますが、なぜローカルで動作するのかわかりません。 –

+0

@BenoitB。あなたは "コレクションレベル"ルートの意味を説明できますか?それを説明するリソースを私に指摘してください。また、モデル名を設定する必要があるのはどういう意味ですか?まだレールを学び、起こっていることすべてを理解しようとしています。 – Dan

+1

インデックスパスにはRailsAdminのモデルが必要です。モデルのインデックスページです。 Indexは、RailsAdminのコレクションアクションと呼ばれます(レコードのコレクションに適用されます)。あなたが探していたのは、ダッシュボードへのパス、したがってdashboard_pathでした。そこにあるRailsAdminルーティングを見ることができます:https://github.com/sferik/rails_admin/blob/master/config/routes.rb#L5 –

関連する問題