我有一个json对象。我想通过传递这个值来创建一个新学生。如何使用轨道上的ruby中的ajax将该对象的值传递给控制器? 这是我用来传递对象的代码。
self.save = function() {
var dataToSave = {
Name: self.firstName(),
_age: self.Age()
}
alert(JSON.stringify(dataToSave))
$.ajax({
url: '/students/new',
dataType: 'json',
type: 'PUT',
data: {total_changes: JSON.stringify(dataToSave)},
success: function(data) {
alert("Successful");
},
failure: function() {
alert("Unsuccessful");
}
});
// TODO send request
};
}
我 终端有一些错误。它显示
Parameters: {"id"=>"new", "total_changes"=>"{\"Name\":\"hu\",\"_age\":\"7\"}"}
id被视为新的.Rake路由
[nithinv@ast297 jquery_country]$ rake routes
students GET /students(.:format) students#index
POST /students(.:format) students#create
new_student GET /students/new(.:format) students#new
edit_student GET /students/:id/edit(.:format) students#edit
student GET /students/:id(.:format) students#show
PUT /students/:id(.:format) students#update
DELETE /students/:id(.:format) students#destroy
控制器
def new
@student = Student.new
respond_to do |format|
format.html # new.html.erb
format.json { render :json => @student }
end
end
如何在控制器中创建功能?
答案 0 :(得分:4)
试试这个网址:
alert(JSON.stringify(dataToSave))
$.ajax({
url: '/students',
dataType: 'json',
type: 'PUT',
data: {total_changes: JSON.stringify(dataToSave)},
success: function(data) {
alert("Successful");
},
failure: function() {
alert("Unsuccessful");
}
});
将网址更改为/ students
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为你的routes.rb有错路由,这就是为什么你id
为new
。
应该是:
<强>的routes.rb 强>
resources "students"
match "/students/new" => "students#new"
这将在new
控制器中调用students
操作。因此,这取决于您的new
操作在students
控制器中的代码。
其余的代码似乎是正确的。但是,如果您仍然收到错误,请显示您收到的错误消息,并进一步显示new
操作代码。