У меня есть этот метод контроллера:Jquery Ajax и контроллер метод
def create
render plain: params[:article].inspect
#@article = Article.new(article_params)
#@article = Article.create(article_params)
#if @article.save
# redirect_to @article
#else
# render 'new'
#end
end
И этот запрос JQuery Ajax:
function ajaxsend() {
$.ajax({
url: "/articles",
type: "POST",
data: { "article": { "title": "acme", "text": "text of the article" } },
success: function(resp){ }
});
}
Но после того, как я нажимаю кнопку, запуск электронной JQuery Ajax Я ничего не получаю. Я ожидаю рендеринг, но ничего не происходит, даже ошибка в консоли. Что я делаю неправильно? Я не понимаю, как я могу отправить данные jQuery ajax в контроллер. Любая помощь? Я новичок в рубинах по разработке рельсов. Ruby версия: 2.1.2; Версия Rails: 4.1.5;
Edit1:
Он хорошо работает, когда я делаю это традиционным способом в виде:
Результат:
Edit2 :
сервер печатает WEBrick это, когда я нажимаю кнопку:
Started POST "/articles" for 127.0.0.1 at 2014-09-14 09:43:36 +0100
Processing by ArticlesController#create as */*
Parameters: {"article"=>{"title"=>"acme", "text"=>"123 Carrot Street"}}
Rendered text template (0.0ms)
Completed 200 OK in 1ms (Views: 0.4ms | ActiveRecord: 0.0ms)
кажется нормально. Почему в браузере ничего не происходит? Почему рендер в методе создания не работает? Любая помощь?
WEBrick ответ, когда я заполнить форму и нажмите кнопку Создать статью:
Started POST "/articles" for 127.0.0.1 at 2014-09-14 09:52:21 +0100
Processing by ArticlesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"o8bzaGFcWGaHFFEbgZsfx5bWiHDAIaX3j4xXh3XkTwc=", "article"=>{"title"=>"mmmmm", "text"=>"mmmmm"}, "commit"=>"Create Article"}
Rendered text template (0.0ms)
Completed 200 OK in 1ms (Views: 0.4ms | ActiveRecord: 0.0ms)
EDIT3:
Я также попробовал так:
$.post("/articles", { "article": { "title": "Title1Ar", "text": "text of the article" } }, alert("callback"), "json").error(alert("error handler"));
это в WEBrick:
Started POST "/articles" for 127.0.0.1 at 2014-09-15 09:19:49 +0100
Processing by ArticlesController#create as JSON
Parameters: {"article"=>{"title"=>"firsttitle", "text"=>"text of the article"}}
Rendered text template (0.0ms)
Completed 200 OK in 1ms (Views: 0.5ms | ActiveRecord: 0.0ms)
, но в браузере снова ничего не происходит. Любая помощь?
Вы пробовали добавлять 'удаленный: true' в качестве опции в виде помощника? Это превратит POST в запрос AJAX для вашего действия 'create' или' update' в контроллере. Затем вы можете создать файл 'create.js.erb' в папке вида' articles', и он запустит этот JS. – kobaltz
Я проделал эту простую форму, чтобы понять, как я могу вызвать метод создания строки с помощью jQuery ajax-запроса. Потому что у меня есть инструмент javascript, разработанный для рисования диаграмм, но в конце я хочу сохранить все данные диаграммы. Я сделал это на PHP, но теперь я должен сделать это в рубине на приложении rails. Подводя итог, я должен сохранить json-объект на сервере. – Mario
Похоже, что он должен отправить запрос, хотя вы не увидите никакого ответа в браузере. Вы упоминаете, что не видите ошибку в консоли, ссылаетесь ли вы на консоль Rails (при условии, что вы используете сервер WEBrick) или консоль javascript в браузере? Firebug в Firefox незаменим для отладки таких вещей. – Jim