Учебник Simple Ajax from Rails отправляет запрос, но не выводит HTML?

Я следую этому руководству по созданию запроса Ajax на Rails:

http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3/

сделал _form удаленным: ‹%= 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>

Добавлен формат.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 06.02.2012 12:58:02 +0800 Обработка PostsController#create as JS Параметры: {"utf8"=>"✓", "authenticity_token"=>"m4BT19I9aUQ+ FwGD3Ub9WqKJc0IqjsPpD8+nOyQNhjo=", "post"=>{"name"=>"asdsad", "title"=>"sadassad", "content"=>"adasdadadad"}, "commit"=>"Создать сообщение"} (0,2 мс) начать транзакцию SQL (86,7 мс) ВСТАВИТЬ В «сообщения» («контент», «создано_в», «имя», «название», «обновлено_в») ЗНАЧЕНИЯ (?, ?, ?, ?, ?) [ ["content", "adasdadadad"], ["created_at", пн, 06 февраля 2012 г. 04:58:02 UTC +00:00], ["name", "asdsad"], ["title", "sadassad" ], ["updated_at", пн, 06 февраля 2012 г., 04:58:02 UTC +00:00]] (120,0 мс) транзакция фиксации Отрендеренные сообщения/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:in _app_views_posts_create_js_erb__76139275_96235900'
app/controllers/posts_controller.rb:45:in
create'

Визуализация /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,1 мс) Визуализация /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 мс)

Любые предложения, чтобы исправить это?


person alexchenco    schedule 06.02.2012    source источник


Ответы (1)


В этом уроке есть опечатка; escape_javaScript должно быть escape_javascript (нижний регистр)

См. также: escape_javascript()

person Azolo    schedule 06.02.2012