我是Rails的新手,我试图从javascxript向控制器方法提交模型数据,并渲染结果列表......
function submitResults() {
resultURL = "/result";
resultData = JSON.stringify(results);
$.ajax({
type: "POST",
url: resultURL,
data: { results: resultData},
contentType: "application/html",
dataType: "html"
});
服务器显示执行控制器方法并呈现视图...
Started POST "/result" for 127.0.0.1 at 2014-11-14 17:36:32 -0600
Processing by ResultsController#create as HTML
Result Load (0.7ms) SELECT "results".* FROM "results"
Rendered results/index.html.erb within layouts/application (366.0ms)
Completed 200 OK in 4722ms (Views: 408.3ms | ActiveRecord: 1.3ms)
但浏览器无法呈现视图。这是我的创建方法,由$ .ajax调用触发...
def create
result = Result.new(result_params)
result.save
@results = Result.all
respond_to do |format|
format.html { render :index }
end
end
为什么浏览器没有加载索引视图?
答案 0 :(得分:1)
你的ajax调用没有对响应做任何事情,为它定义回调函数。 E.g:
$.ajax({
type: "POST",
url: resultURL,
data: { results: resultData},
contentType: "application/html",
dataType: "html"
}).done(function(response) {
//attach the response somewhere in the DOM.
});
检查所有回调的AJAX文档。
顺便说一句,你通常不希望通过ajax调用加载整个html页面。好像您正在渲染的页面包含所有内容(似乎使用默认布局)。在这种情况下,进行AJAX调用可能没有任何好处(并且使事情变得更难),并且您可能希望通过html表单进行发布。