2016-04-09 14 views
0

Form_language_id adlı formumdaki bir açılır kapanışı değiştirmek için AJAX kullanıyorum, bu değiştirildikten sonra formumda bazı değişiklikler yapmak için javascript çalıştırmak istiyorum .Raylar - Rota göster, tanımladığımın yerine kullanılıyor

ben yaşıyorum sorun raylar düz gösteri eylemi tırmık yollarının sipariş bunu değiştirmek için görünmüyor 'Question could not be found with id=update_questions_direction'.

hatayı neden olan gösterin eylem ziyade benim update_questions_direction eyleme gider. aşağıdaki gibi

benim AJAX çağrısıdır:

routes.rb dan
$(document).on 'change', '#question_language_id', (evt) -> 
$.ajax 'update_questions_direction', 
    type: 'GET' 
    dataType: 'script' 
    data: {"language_id": $("#question_language_id option:selected").val()} 
    error: (jqXHR, textStatus, errorThrown) -> 
    console.log("AJAX Error: #{textStatus}") 
    success: (data, textStatus, jqXHR) -> 
    console.log("Direction was changed") 

: tırmık rotalardan

get 'questions/update_questions_direction', as: 'update_questions_direction' 


resources :categories do 
    resources :questions do 
     resources :answers 
     member do 
      get :quizzes 
     end 
    end 
end 

ilgili çıkışı: Bu yüzden

update_questions_direction GET /questions/update_questions_direction(.:format)       questions#update_questions_direction 
category_question GET /categories/:category_id/questions/:id(.:format)       questions#show 

anlayamıyorum oluyor - neden rails update_questions_direction id olduğunu düşünüyor? Ben olsun

hatadır:

ActiveRecord::RecordNotFound in QuestionsController#show 
Couldn't find Question with 'id'=update_questions_direction 

Ben, bu konuda yardıma takdir gerçekten ediyorum zaman ayırdığınız için teşekkür ederiz.

cevap

1

Sorun, ajax aramanızdaki göreceli bir yolu kullanmanızdır, bu nedenle isteğiniz, içinde bulunduğunuz yola göre bir yola yerleştirilir. Geçerli yolunuz /categories/1/questions ise, bu bir gizem değildir. Neden /categories/1/questions/update_questions_direction numaralı telefona gitmek istiyor ve id veritabanında bulunamadı. hızlı çözüm mutlak ile göreli yolunu değiştirmektir:

$.ajax '/questions/update_questions_direction', 
+0

Çok teşekkür ederim! mükemmel çalıştı ve açıklamanız için teşekkür ederim – JungleBook

İlgili konular