Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ajax在我的Rails应用程序中不起作用_Ruby On Rails_Ruby_Ajax - Fatal编程技术网

Ruby on rails Ajax在我的Rails应用程序中不起作用

Ruby on rails Ajax在我的Rails应用程序中不起作用,ruby-on-rails,ruby,ajax,Ruby On Rails,Ruby,Ajax,我有以下代码向控制器的方法发出ajax请求,以获取给定url的内容类型: $("#wiki_form_url").change(function () { $.ajax({ type: "GET", url: "/wiki_forms/content", data: { input_url: $("#wiki_form_url").val() }

我有以下代码向控制器的方法发出ajax请求,以获取给定url的内容类型:

    $("#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 controller中有一个名为content的方法,我正在执行该方法:

  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'
但是,当我尝试发出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调用中指定content方法时,会在这里调用show方法?如何做到这一点?请帮忙

编辑\u 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

routes.rb文件的顺序很重要

rake路由
显示

        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
所以

首先匹配的是
:id
的值字符串“content”

移动你的

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

routes.rb的上层

您的
routes.rb
文件的顺序很重要

rake路由
显示

        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
所以

首先匹配的是
:id
的值字符串“content”

移动你的

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

routes.rb的上面,你的
route.rb
显示了一件事。你能给我们看一下rake路由的输出吗?请看我的编辑@Joeframbachd您的javascript控制台是否显示任何错误?获取404(未找到)这是我的javascript控制台中显示的错误您的
route.rb
显示了一件事。你能给我们看一下rake路由的输出吗?请看我的编辑@您的javascript控制台是否显示任何错误?GET 404(未找到)这是我的javascript控制台中显示的错误