Форма не работает при добавлении: remote => true - PullRequest
1 голос
/ 17 июля 2011

Это не единственная удаленная форма, которую я использую, но я не вижу здесь проблемы.Это простая таблица, в которой каждая строка имеет свою собственную форму и встроенные поля формы.

<% for temporary_address in @temporary_addresses %>

    <tr id="row-<%= temporary_address.id -%>">
        <%= form_for temporary_address, :remote => true do |form| %>

            <td>
                <%= link_to "x", temporary_address, :method => :delete, :remote => true %>
                <%= form.submit "s" %>
            </td>

            [... form fields ...]
        <% end %>
    </tr>

<% end %>

Однако это работает только тогда, когда: remote => true используется , а не .

resources :temporary_addresses

находится в файле маршрутов.Удалить ссылки работают, и форма также работает, когда не используется: remote => true.

нажатие кнопки submit with remote => true дает

Started POST "/temporary_addresses/12" for 127.0.0.1 at 2011-07-17 12:45:26 +0200

ActionController::RoutingError (No route matches "/temporary_addresses/12")

и отправка без пульта => true работает со следующим ответом

Started POST "/temporary_addresses/12" for 127.0.0.1 at 2011-07-17 12:46:15 +0200
  Processing by TemporaryAddressesController#update as HTML
  Parameters: {[...] "commit"=>"s", "temporary_address"=>{[...]}, "id"=>"12"}

Кто-нибудь знает об этом?

РЕДАКТИРОВАТЬ 1 Удален link_to: удаленный, чтобы уничтожить запись для проверки.Та же ошибка ...

Визуализированная форма выглядит так:

<tr id="row-1">
    <td>
    </td>

    <form accept-charset="UTF-8" action="/temporary_addresses/1" class="edit_temporary_address" data-remote="true" id="edit_temporary_address_1" method="post">

        <div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" />
            <input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="vpFbYO7L9fVtBsWej37FUBobraYjjdWA/F8AjWTwC7A=" />
        </div>

            <td>
                <input id="temporary_address_firstname" name="temporary_address[firstname]" size="30" type="text" value="John" />
            </td>
            <td>

                <input id="temporary_address_lastname" name="temporary_address[lastname]" size="30" type="text" value="Doe" />
            </td>
            <td>
                <input id="temporary_address_email" name="temporary_address[email]" size="30" type="text" value="john.doe@example.com" />
            </td>
            <td>
                    New record
            </td>
            <td>
                <input id="temporary_address_submit" name="commit" type="submit" value="save" />
            </td>

        </form>
</tr>

1 Ответ

0 голосов
/ 29 июля 2011

Решено!

Простая вещь ... Firefox перестраивает вещи, когда они не являются действительными HTML. Вывод, приведенный выше, является исходным кодом. Теперь, когда я увидел сгенерированный исходный код (благодаря панели инструментов веб-разработки), проблема ясна: скрытые поля формы, созданные в div с отображением: ни одно из них не было перемещено за пределы формы.

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