Ajax-запрос с form_remote_tag не работает - PullRequest
0 голосов
/ 05 сентября 2010

Итак, я использую form_remote_tag для попытки отправки формы ajax, например так:

<% form_remote_tag :update=> 'test', :url=> {:action=>'test_action'} do -%>

Это делает без видимой проблемы:

<form action="/pages/test_action" method="post" onsubmit="new Ajax.Updater('test', '/pages/test_action', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;">

Действие test_action:

def test_action
  if request.xhr?
    render :text => 'some text'
  else
    puts 'nope'
  end
end

Когда я отправляю форму (с помощью кнопки отправки ничего странного, как событие jquery submit ()), ajax-запрос не выполняется. Проверка xhr возвращает false. Помогите пожалуйста ??

1 Ответ

0 голосов
/ 05 сентября 2010

В контроллере вы должны ответить на указанный формат, js в вашем случае. Например:

def create
  @item = Item.new(params[:item])

  respond_to do |format|
    if @item.save
      flash[:notice] = 'Item was successfully created.'
      format.js
      format.html { redirect_to(@item) }
      format.xml  { render :xml => @item, :status => :created, :location => @item }
    else
      format.html { render :action => "new" }
      format.xml  { render :xml => @item.errors, :status => :unprocessable_entity }
    end
  end
end

На данный момент рекомендуется использовать ненавязчивый javascript (UJS). В рельсах нет form_remote_tag. UJS также может использоваться с рельсами 2.3 .

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