Rails 3 не загружает файлы .js.erb - PullRequest
2 голосов
/ 20 августа 2011

Мне бы хотелось, чтобы два файла .js.erb с именами "create" и "update" загружались и выполнялись для замены таблицы в одном из моих представлений обновленным частичным после отправки формы.

Оба файла содержат следующее (они идентичны)

$('table#rating').replaceWith("<%= escape_javascript(render :partial => 'home/rating') %>");

Однако я не уверен, куда поместить файлы .js.erb (в том же виде, что и моя страница html.erb?) И какзагрузить / вызвать их, когда форма отправляет.Любая помощь будет оценена.

Ответы [ 2 ]

3 голосов
/ 20 августа 2011

Да, вы размещаете .js.erb файлы в том же месте, что и файлы .html.erb, с которыми вы их используете. Чтобы Rails использовал их, вам нужно сообщить Rails, что форма должна быть отправлена ​​асинхронно (через AJAX). Для этого просто добавьте :remote => true в тег формы. Например

<%= form_for @some_model, :remote => true do %>
<!-- form stuff... -->
<% end %>
2 голосов
/ 20 августа 2011

Чтобы отправить форму с помощью Ajax, вам нужно указать параметр :remote => true, как указал Алекс.

В контроллере, который обрабатывает отправку формы, также должна быть возможность отвечать на запрос Ajax.У него должно быть что-то вроде следующего.

class FormHandlingController < ApplicationController

  def create
    ...
    respond_to do |format|
      format.js
    end
  end

end

Вы должны поместить craete.js.erb в каталог app/views/form_handling_controllers/.

...