我的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方法没有做任何事情......任何帮助都会很棒
答案 0 :(得分:0)
你希望你的比赛是:
match '/map3/create' => 'chap_three#create'
#
分别对控制器名称和操作名称进行分隔,:to
是不必要的,仅在定义root
路由时使用。我建议您阅读Rails Routing Guide