我的控制器上有以下操作:
def find_by_email(useremail)
@kid = Kid.find_by_email(params[:kid_email]).first
if !@kid.nil?
respond_to do |format|
format.json { render json: @kid, success: true, error: false }
end
end
end
使用以下路线:
get '/admin/kid/:kid_email' => "admin/kid#find_by_email"
我认为这是ajax:
$("#kid_email").blur(function() {
var value = $( this ).val();
var url = "/admin/kid/";
var data = {"email" : value};
var dataType = "json";
if (value != ""){
$.ajax({
type: "GET",
url: url,
data: data,
success: function(response){
alert("EXISTE");
},
error: function(response){
alert("NOOOOO");
},
dataType: dataType
});
}
});
但是我总是找不到404,但是我的数据库上有测试用户。这是控制台输出:
Started GET "/admin/kid/?email=testuser%40gmail.com" for 127.0.0.1 at 2014-03-04 12:51:50 +0100
Processing by ErrorsController#routing as JSON
Parameters: {"email"=>"testuser@gmail.com", "a"=>"admin/kid"}
MONGODB (0.7ms) development['kids'].find({:_id=>BSON::ObjectId('514055c285216d2a950003af')}).limit(-1).sort([[:_id, :asc]])
MONGODB (25.5ms) development['$cmd'].find({"count"=>"kid_weekly_connections", "query"=>{"kid_id"=>BSON::ObjectId('514055c285216d2a950003af')}, "fields"=>nil}).limit(-1)
MONGODB (28.4ms) development['kid_weekly_connections'].find({"kid_id"=>BSON::ObjectId('514055c285216d2a950003af')}).limit(-1).sort([[:start_at, :desc]])
DEPRECATION WARNING: Passing the format in the template name is deprecated. Please pass render with :formats => [:html] instead. (called from realtime at /Users/jean/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/benchmark.rb:295)
Rendered public/404.html (0.1ms)
Completed 404 Not Found in 68ms (Views: 8.5ms)
任何想法???
提前感谢您的帮助。
答案 0 :(得分:0)
您的路线模式正在寻找网址中的电子邮件地址。像这样:
/admin/kid/kid@example.com
所以你的JavaScript需要像这样开始:
$("#kid_email").blur(function() {
var url = "/admin/kid/" + $(this).val();
...
});
然后你真的不需要设置/传递data
对象。