2013-03-28 2 views
0

Я следующий код, чтобы сделать AJAX запрос на метод моего контроллера, чтобы получить тип содержимого данного URL:Ajax не работает в приложении My Rails

$("#wiki_form_url").change(function() { 
     $.ajax({ 
      type: "GET", 
      url: "/wiki_forms/content", 
      data: { 
       input_url: $("#wiki_form_url").val() 
      }, 
      dataType: "text" 
     }).done(function (data) { 
        // `data` contains the content-type 
        alert('Success'); 
        console.log(data); 
//     alert(data); 
       }).fail(function() { 
        alert("failed AJAX call"); 
       }); 
    }); 

Существует метод в моем контроллере wiki_forms имени содержание и внутри, что я делаю:

def content 

    req = open(params[:input_url]) 
    render :text => req.content_type 
    puts "type is : #{req.content_type}" 

    end 

в моем route.rb файле у меня есть:

match "/wiki_forms/content" => 'wiki_forms#content' 

Но, Whe n Я пытаюсь сделать запрос ajax, я получаю ошибку. Моя консоль выглядит следующим образом:

Started GET "/wiki_forms/content?input_url=http%3A%2F%2Fwww.ofdp.org%2Fbenchmark_indices%2F25" for 127.0.0.1 at 2013-03-28 14:08:42 -0400 
Processing by WikiFormsController#show as TEXT 
    Parameters: {"input_url"=>"http://www.ofdp.org/benchmark_indices/25", "id"=>"content"} 
    WikiForm Load (0.3ms) SELECT "wiki_forms".* FROM "wiki_forms" WHERE "wiki_forms"."id" = ? LIMIT 1 [["id", "content"]] 
Completed 500 Internal Server Error in 3ms 

ActiveRecord::RecordNotFound (Couldn't find WikiForm with id=content): 
    app/controllers/wiki_forms_controller.rb:23:in `show' 

Почему шоу метод вызывался здесь, как я определил метод содержания в моем AJAX вызова? Как это сделать? Пожалуйста, помогите

EDIT_1:

рек маршруты

 wiki_forms GET /wiki_forms(.:format)   wiki_forms#index 
        POST /wiki_forms(.:format)   wiki_forms#create 
    new_wiki_form GET /wiki_forms/new(.:format)  wiki_forms#new 
    edit_wiki_form GET /wiki_forms/:id/edit(.:format) wiki_forms#edit 
     wiki_form GET /wiki_forms/:id(.:format)  wiki_forms#show 
        PUT /wiki_forms/:id(.:format)  wiki_forms#update 
        DELETE /wiki_forms/:id(.:format)  wiki_forms#destroy 
       root  /       wiki_forms#index 
wiki_forms_content  /wiki_forms/content(.:format) wiki_forms#content 
+0

Ваш «route.rb» показывает одно. Можете ли вы показать нам вывод «рейк-маршрутов»? –

+0

, пожалуйста, посмотрите мое редактирование. @joeframbach –

+0

Есть ли в вашей консоли javascript какие-либо ошибки? –

ответ

4

упорядочения ваших вопросов файлов routes.rb.

rake routes показывает

 wiki_forms GET /wiki_forms(.:format)   wiki_forms#index 
        POST /wiki_forms(.:format)   wiki_forms#create 
    new_wiki_form GET /wiki_forms/new(.:format)  wiki_forms#new 
    edit_wiki_form GET /wiki_forms/:id/edit(.:format) wiki_forms#edit 
     wiki_form GET /wiki_forms/:id(.:format)  wiki_forms#show 
        PUT /wiki_forms/:id(.:format)  wiki_forms#update 
        DELETE /wiki_forms/:id(.:format)  wiki_forms#destroy 
       root  /       wiki_forms#index 
wiki_forms_content  /wiki_forms/content(.:format) wiki_forms#content 

Так

  wiki_form GET /wiki_forms/:id(.:format)  wiki_forms#show 

сопрягает первым, с :id имеющий строковое значение "содержание"

Перемещайте

match "/wiki_forms/content" => 'wiki_forms#content' 

выше в routes.rb.

Смежные вопросы