我有一个rails控制器函数,它调用模型函数来获取数据并返回该数据。我正在尝试使用ajax进行函数调用,并且不需要任何重定向,因为我关心的是返回的值。 如何在不重新加载页面/丢失模板错误的情况下完成此操作?
控制器
def update_sales
@data = ControllerName.function_name()
return @data # What I want
redirect_to path_name # what I don't want
end
模型
def self.function_name
...
...
return data
end
的Ajax
$.get("/update_sales").done(function(data){
console.log(data);
// I would set html attribute to data but I get missing template error
})
答案 0 :(得分:1)
可以在控制器动作中尝试这样的事情吗?
if @data.save
// send the object back to interface
render json: @data.serialize.to_json, status: :ok
else
// send the errors back to interface
render json: @data.errors.full_messages, status: :internal_server_error
end
ajax电话:
$.ajax({
url:"/update_sales",
type: "PATCH",
data: data_to_send
}).done(function(data, textStatus, jqXHR) {
// do stuff when it is done
}).fail(function(jqXHR, textStatus, errorThrown){
// do stuff if it errors out
});