Я следую этому руководству по созданию Ajax-запроса на Rails:
http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3/
сделал _форм удаленным:
<% = form_for (@post,: remote => true) do | f | %>
Мои скрипты загружены:
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
Добавлен format.js в posts_controller.rb:
def create
@post = Post.new(params[:post])
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.js
else
format.html { render action: "new" }
format.js
end
end
end
Создано create.js.erb:
$('body').html("<h1><%= escape_javaScript(@post.title) %></h1>").append("<%= escape_javaScript(@post.content) %>");
Но когда я нажимаю кнопку отправки, в представлении ничего не происходит, но сообщения создаются.
Я просто получаю это в терминале:
Начато POST "/ posts" для 127.0.0.1 в 2012-02-06 12:58:02 +0800
Обработка PostsController # создать как параметры JS: {"utf8" => "✓",
"Authenticity_token" => "m4BT19I9aUQ + FwGD3Ub9WqKJc0IqjsPpD8 + nOyQNhjo =",
"post" => {"name" => "asdsad", "title" => "sadassad",
"content" => "adasdadadad"}, "commit" => "Создать сообщение"} (0,2 мс) begin
транзакция SQL (86.7ms) INSERT INTO "posts" ("content",
"creation_at", "name", "title", "updated_at") ЗНАЧЕНИЯ (?,?,?,?,?)
[["content", "adasdadadad"], ["creation_at", понедельник, 06 февраля 2012 04:58:02
UTC + 00: 00], ["name", "asdsad"], ["title", "sadassad"], ["updated_at",
Понедельник, 06 Фев 2012 04:58:02 UTC + 00: 00]] (120.0ms) коммит
Транзакция Rendered posts / create.js.erb (307,9мс) завершена 500
Внутренняя ошибка сервера в 528 мс
ActionView :: Template :: Error (неопределенный метод escape_javaScript для
<#: 0xb78ecd0>):
1: $('body').html("<h1><%= escape_javaScript(@post.title) %></h1>").append("<%= escape_javaScript(@post.content) %>");
Приложение / просмотров / сообщений / create.js.erb: 1: в
_app_views_posts_create_js_erb__76139275_96235900'<br>
app/controllers/posts_controller.rb:45:in
создать '
Вынесено
/home/alex/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb
(9,9 мс) отображается
/home/alex/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb
(3.1ms) Оказывается
/home/alex/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/template_error.erb
в пределах спасения / макета (19,1 мс)
Есть предложения, чтобы это исправить?