Я новичок в 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
Еще раз спасибо, это имеет смысл. Я просто пытаюсь выяснить способ вызова метода create из javascript. Использование $ .ajax - единственный способ, который я нашел до сих пор. Что вы подразумеваете под «html call»? Можете ли вы предоставить быстрый фрагмент кода, который я могу использовать для дальнейшего исследования? – BeachRunnerFred
Ну, если вы хотите сделать это через javascript, тогда $ .ajax - лучший способ, но опять же я предлагаю, чтобы если результат POST (вызов создать) будет изменяться на странице браузера, то не делайте этого это через javascript. У Rails есть вспомогательные методы, которые помогут вам создавать html-формы (я имею в виду html, без javascript). См. [Здесь] (http://guides.rubyonrails.org/form_helpers.html) – AOG