在routes.rb中为控制器创建函数添加哪些路由?

时间:2013-02-08 05:05:55

标签: ruby-on-rails routes controllers

我的chap_three_controller.rb文件:

class ChapThreeController < ApplicationController
   def create
      @marker = Marker.new(params[:m])
      if @marker.save
         res={:success=>true,:content=>"<div><strong>found </strong>#{marker.found}
              </div><div><strong>left </strong>#{marker.left}</div>"}
      else
         res={:success=>false,:content=>"Could not save the marker"}
      end
      render :text=>res.to_json
   end
end

我的routes.rb文件

match '/map3', :to => 'chap_three#map'
match '/map3/create', :to => 'chap_three#:action'

我是否正确地将控制器中的创建功能与我的路线相匹配?因为它不起作用..

这是我的javascript代码片段:

request.open('GET', 'create' + getVars, true);
 request.onreadystatechange = function() {
    if (request.readyState == 4) {
 //the request is complete
    var success=false;
    var content='Error contacting web service';
    try {
 //parse the result to JSON (simply by eval-ing it)
      res=eval( "(" + request.responseText + ")" );
      content=res.content;
      success=res.success;
    }catch (e){
       success=false;
     }

我一直遇到的错误是“联系网络服务时出错”。这意味着我的request.responseText不起作用,我的控制器中的create方法没有做任何事情......任何帮助都会很棒

1 个答案:

答案 0 :(得分:0)

你希望你的比赛是:

match '/map3/create' => 'chap_three#create'

#分别对控制器名称和操作名称进行分隔,:to是不必要的,仅在定义root路由时使用。我建议您阅读Rails Routing Guide