2011-08-28 3 views
1

이것은 정말 실망 스럽습니다. 금주 모임은 저에게 아주 잘 사용되어 왔고 거의 모든 것을 시도했다고 생각합니다. 여기에 내 문제가있다 :Heroku의 ActiveAdmin - 제대로 작동하지 않는 경로

로컬 호스트에서 모든 것이 정상적으로 작동하지만 일단 Heroku에 들어가면 이상한 일이 일어난다.

내 대시 보드에는 [Badge][Student] 등이 있습니다.

/admin/badges을 통해 모든 배지를 볼 수 있습니다. 그러나 일단 Edit/View/Show를 수행하면 Heroku에서 문제가 발생하지만 localhost에서는 정상적으로 작동합니다.

검사에서이 문제가 발생합니다 :

ActionView::Template::Error (No route matches {:action=>"edit", :controller=>"admin/students", :id=>#<Student id: nil, email: "", encrypted_password: "", password_salt: "", reset_password_token: nil, remember_token: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, avatar_file_name: nil, avatar_content_type: nil, avatar_file_size: nil, name: nil, role: nil, school: nil, parent_tutor_email: nil, parent_tutor_token: nil, pending_badge: nil, proficiency: 0.0, created_at: nil, account_type: "free", chargify_id: nil, fb_id: nil, score: 0, level_id: nil, special_bonuses: nil, birthday: nil, edu_level: nil>}): 

1: render renderer_for(:show) 

:id이 배지 ID가 있어야 것 같다, 그러나 그것은 비어 학생 객체에 의해 사방됩니다.

여기 내 route.rb 파일입니다 :

WitsApp::Application.routes.draw do 

    ActiveAdmin.routes(self)  
    devise_for :admin_users, ActiveAdmin::Devise.config 


    devise_for :students, :controllers => {:registrations => "registrations", :sessions => "students_sessions", :passwords =>"devise/passwords"} do 
    match 'students/sign_up'    => 'registrations#create',  :as => "student_sign_up" 
    get 'students/sign_out'    => 'students_sessions#destroy' 
    get 'students/sign_in'    => 'pages#welcome' 
    get 'students/password/new'   => 'devise/passwords#new' 
    get 'students/password/edit'  => 'devise/passwords#edit' 
    post 'students/password'    => 'devise/passwords#create' 
    put 'students/password'    => 'devise/passwords#update' 

    get 'students', :to => 'students#show', :as => :student_root 
    resources :badges 
    resources :students 
    end 

    match '/sign_up' => 'pages#welcome', :as => "sign_up" 

    root :to => "pages#home" 
end 

여기 레이크 루트 (절단) 도움이된다면입니다 :

admin_dashboard  /admin(.:format)          {:action=>"index", :controller=>"admin/dashboard"} 
     admin_comments GET /admin/comments(.:format)        {:action=>"index", :controller=>"admin/comments"} 
         POST /admin/comments(.:format)        {:action=>"create", :controller=>"admin/comments"} 
     new_admin_comment GET /admin/comments/new(.:format)       {:action=>"new", :controller=>"admin/comments"} 
    edit_admin_comment GET /admin/comments/:id/edit(.:format)      {:action=>"edit", :controller=>"admin/comments"} 
      admin_comment GET /admin/comments/:id(.:format)       {:action=>"show", :controller=>"admin/comments"} 
         PUT /admin/comments/:id(.:format)       {:action=>"update", :controller=>"admin/comments"} 
         DELETE /admin/comments/:id(.:format)       {:action=>"destroy", :controller=>"admin/comments"} 
      admin_topics GET /admin/topics(.:format)        {:action=>"index", :controller=>"admin/topics"} 
         POST /admin/topics(.:format)        {:action=>"create", :controller=>"admin/topics"} 
     new_admin_topic GET /admin/topics/new(.:format)       {:action=>"new", :controller=>"admin/topics"} 
     edit_admin_topic GET /admin/topics/:id/edit(.:format)      {:action=>"edit", :controller=>"admin/topics"} 
      admin_topic GET /admin/topics/:id(.:format)       {:action=>"show", :controller=>"admin/topics"} 
         PUT /admin/topics/:id(.:format)       {:action=>"update", :controller=>"admin/topics"} 
         DELETE /admin/topics/:id(.:format)       {:action=>"destroy", :controller=>"admin/topics"} 
      admin_badges GET /admin/badges(.:format)        {:action=>"index", :controller=>"admin/badges"} 
         POST /admin/badges(.:format)        {:action=>"create", :controller=>"admin/badges"} 
     new_admin_badge GET /admin/badges/new(.:format)       {:action=>"new", :controller=>"admin/badges"} 
     edit_admin_badge GET /admin/badges/:id/edit(.:format)      {:action=>"edit", :controller=>"admin/badges"} 
      admin_badge GET /admin/badges/:id(.:format)       {:action=>"show", :controller=>"admin/badges"} 
         PUT /admin/badges/:id(.:format)       {:action=>"update", :controller=>"admin/badges"} 
         DELETE /admin/badges/:id(.:format)       {:action=>"destroy", :controller=>"admin/badges"} 
     admin_students GET /admin/students(.:format)        {:action=>"index", :controller=>"admin/students"} 
         POST /admin/students(.:format)        {:action=>"create", :controller=>"admin/students"} 
     new_admin_student GET /admin/students/new(.:format)       {:action=>"new", :controller=>"admin/students"} 
    edit_admin_student GET /admin/students/:id/edit(.:format)      {:action=>"edit", :controller=>"admin/students"} 
      admin_student GET /admin/students/:id(.:format)       {:action=>"show", :controller=>"admin/students"} 
         PUT /admin/students/:id(.:format)       {:action=>"update", :controller=>"admin/students"} 
         DELETE /admin/students/:id(.:format)       {:action=>"destroy", :controller=>"admin/students"} 

누구나 어떤 아이디어가? 시간을내어 주셔서 감사합니다!

+0

heroku 콘솔에서 "rake routes"를 실행하면 무엇을 얻을 수 있습니까? –

+0

안녕하세요! 레이크 루트 출력은 heroku에서와 똑같습니다. –

답변

0

머리카락을 많이 잡아 당겨서 문제와 해결책을 찾았습니다.

def resource을 (를) 재정의하고 항상 Student을 반환하기 때문입니다.

def resource 
    @resource = Badge.find_by_id(params[:id]) || Badge.new 
end 

그리고 모든 것을 다시 작동합니다 : 따라서, 나는 def resource는이처럼 보이는 것을 무시했다. 왜 더 일찍 실패하지 않았는지 나는 확신 할 수 없다. :