我正在编写一个应用程序,该应用程序主要是通过 AJAX 调用后端服务器的 UI。很少的页面加载。
例如,当我创建行程时,我的 JS 只是将 JSON 对象发送到 Padrino(通过 POST),然后 Padrino 保存行程对象(通过 ActiveRecord)并返回 JSON 响应。
它似乎有效,但我不仅要清理代码,还要清理提交的值。
这是我的POST
代码(trips controller
)
post :index, :provides => :json do
response = {}
response[:trip] = {}
begin
@trip = Trip.new
@trip.title = params[:trip][:title]
@trip.description = params[:trip][:title]
if @trip.save
response[:status] = "Success"
response[:trip] = {:title => @trip.title, :description => @trip.description}
response[:message] = "#{@trip.title} successfully saved"
else
response[:status] = "Error"
response[:message] = "Error saving trip"
end
rescue
response[:status] = "Error"
response[:message] = "Error saving trip"
end
response.to_json
end
目前,只有两个字段(标题和描述),但完成后大约有 4-8 个。我不喜欢我如何构建新的行程对象。
我尝试使用:
@trip = Trip.build(params[:trip])
但这没有用。
这是我发送 POST 的 JS 代码:
// Save new trip
$("#new_trip_save_btn").click(function() {
var self = this;
var new_trip = get_new_trip();
$.ajax({
data: {trip:new_trip},
dataType: "json",
url: "/trips",
type: "post",
success: function(res) {
console.log(res)
}
});
});
......
var get_new_trip = function() {
var self = this;
var trip = {};
trip.title = $("#new_trip_title").val();
trip.description = $("#new_trip_description").val();
trip.departure_date = $("#new_trip_departure").val();
trip.return_date = $("#new_trip_return").val();
return trip;
}
那么我可以做些什么来清理代码(删除 POST 操作中的冗余)并确保在保存之前对文本进行清理。
谢谢