Проблема с использованием responseds_to_parent с iframe и AJAX для загрузки файла - PullRequest
0 голосов
/ 20 января 2011

Я следовал инструкциям из статьи " Загрузка файлов AJAX в Rails с использованием attachment_fu и respds_to_parent ".В моем случае я использую Ruby on Rails 3 и Paperclip.

Я сделал следующее:


Я установил подключаемый модуль 'response_to_parent', выполняющий эту команду в Терминале:

rails plugin install git://github.com/itkin/respond_to_parent.git

После установки я перезагружаю Apache.


На мой взгляд, у меня есть:

<%= form_for(@user, :html => { :multipart => true, :target => 'upload_frame' }) do |f| %>
  <%= f.file_field :avatar %>
  <%= f.submit "Submit" %>
<% end %>

<div id="test">Here is a test</div>
<div id="stuff">Here is some stuff</div>
<iframe id='upload_frame' name="upload_frame" style="width:1px;height:1px;border:0px" ></iframe>

В моем контроллере у меня есть

  def action
    respond_to do |format|
      ...
      format.js {
        responds_to_parent do
          render :update do |page|
            page.replace_html :test, "This is the resulting test"
            page << "alert($('stuff').innerHTML)"
          end
        end
      end
    end
  end

Попытка отправить форму, все о загрузке файлов (файлы исправлений Paperclip, ...) и в файле журнала нет ошибок.

только вещь, которая не работает, является частью AJAX.В примере

page.replace_html :test, "This is the resulting test"
page << "alert($('stuff').innerHTML)"

не обновляйте страницу (кстати: где это должно иметь влияние? В «главном представлении» или в «представлении iframe»?).Это также не работает, если я пытаюсь удалить оператор 'response_to_parent' или если я помещаю их в файл 'action.js.rjs'.

Где я ошибаюсь?

1 Ответ

0 голосов
/ 20 января 2011

решено

Я забыл добавить :url => users_account_path +. "js".Таким образом, мнение становится:

<%= form_for(@user, :url => users_account_path +. "js", :html => { :multipart => true, :target => 'upload_frame' }) do |f| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...