Простой учебник Ajax из Rails отправляет запрос, но не выводит HTML? - PullRequest
2 голосов
/ 06 февраля 2012

Я следую этому руководству по созданию 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 мс)

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

1 Ответ

4 голосов
/ 06 февраля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...