Перенаправление несмотря на remote_form? - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть удаленная форма для обновления одного из моих объектов. Однако после обновления Rails перенаправляет на другую страницу, по сути, как если бы эта форма вообще не была удалена. Что я делаю не так?

Из вида:

  <td id='translation-<%= base_text.id.to_s %>' class='editable'>
    <span class="translationstring"><%= @translation.content %></span>
    <%= form_for @translation, :remote => true, :html => { :id => ('translation-form-for_' + base_text.id.to_s) } do |f| %>
      <%= text_area(:translation, :content, :rows => 2) %><%= f.hidden_field(:base_text_id) %><%= f.hidden_field(:lang) %>
    <% end %>
  </td>

У меня есть jQuery для отправки формы с использованием .submit (). Затем контроллер делает:

def update
@translation = Translation.find(params[:id])

respond_to do |format|
  if @translation.update_attributes(params[:translation])
    format.html { redirect_to @translation, notice: 'Translation was successfully updated.' }
    format.json { head :no_content }
  else
    format.html { render action: "edit" }
    format.json { render json: @translation.errors, status: :unprocessable_entity }
  end
end

конец

Я также попробовал альтернативный ответ на стороне сервера, который я нашел в Интернете, без изменений:

format.js { render :js => @translation, :status => :updated, :layout => !request.xhr }

Пожалуйста, сообщите.

РЕДАКТИРОВАТЬ: это то, что мой сервер говорит для вызова:

Started PUT "/translations/1" for 127.0.0.1 at 2012-04-04 09:45:49 +0200
Processing by TranslationsController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"WbYiaRgermr2T4wzTPX/ftBsfOB8+
pHCYmhDFJMUu9I=", "translation"=>{"content"=>"Testet Schlüssel wieder.", "base_t
ext_id"=>"1", "lang"=>"de"}, "id"=>"1"}
  ←[1m←[36mTranslation Load (1.0ms)←[0m  ←[1mSELECT `translations`.* FROM `trans
lations` WHERE `translations`.`id` = 1 LIMIT 1←[0m
  ←[1m←[35m (0.0ms)←[0m  BEGIN
  ←[1m←[36m (81.0ms)←[0m  ←[1mUPDATE `translations` SET `content` = 'Testet Schl
üssel wieder.', `updated_at` = '2012-04-04 07:45:49' WHERE `translations`.`id` =
 1←[0m
  ←[1m←[35m (38.0ms)←[0m  COMMIT
Redirected to http://localhost:3000/translations/1
Completed 302 Found in 133ms (ActiveRecord: 120.0ms)

1 Ответ

1 голос
/ 04 апреля 2012

Нашел решение: предоставление: format =>: json в моем теге формы.Возможно, jquery_ujs не справляется со своей задачей, хотя ссылки «уничтожить» работают нормально ...

...