1
我是新来的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
为什么浏览器不加载索引视图?
哦,对不起,我只是更新了答案。你的情况,我建议去一个HTML电话。 javascript在这里没有好处。但是,如果你想用jQuery来做,你可以使用$(document).html(response),它将保持url相同,但改变整个DOM。 – AOG 2014-11-15 00:24:19
再次感谢,这是有道理的。我真的只是试图找出一种方法来从JavaScript调用我的创建方法。使用$ .ajax是我目前找到的唯一方法。 “html call”是什么意思?你能提供一个我可以用来研究进一步的快速代码片段吗? – BeachRunnerFred 2014-11-15 00:26:30
好吧,如果你想通过JavaScript来实现,那么$ .ajax是最好的方法,但是我再次建议如果POST(调用创建)的结果将是浏览器页面更改,那么不要执行它通过JavaScript。 Rails有助手方法可以帮助你创建html表单(我的意思是html,没有javascript)。见[这里](http://guides.rubyonrails.org/form_helpers.html) – AOG 2014-11-15 00:34:13