0

レール 3.1.1

ajax経由でサーバーにポストバックし、完了すると「完了」メッセージを表示するダイアログを設定しています。

  <%= form_tag '/tracking/add',  :remote => true, :id => 'add_tracking_request', 
      :html => {:'data-type' => 'json'} do %>
  ....

サーバーに戻り、すべての作業などを行ってから、respond_to にアクセスします。

   135          puts 'returning ...'
   136          if current_user
   137            respond_to do |format|
   138              debugger
=> 139              format.html { redirect_to :myTrackingRequests and return }
   140              format.js { head :ok, :success => 'true' }
   141            end
   142          else
   143            raise 'no user found at the end of create tracking'
(rdb:67) e format
#<ActionController::MimeResponds::Collector:0x007f98d63417c0 @default_response=#<Proc:0x007f98d6341720@/Users/user/.rvm/gems/ruby-1.9.3-p286/gems/actionpack-3.1.1/lib/action_controller/metal/mime_responds.rb:268>, @responses={}, @order=[]>
(rdb:67) e format.html
nil
(rdb:67) e format.js
nil
(rdb:67) e format.json
nil
(rdb:67) request.format
text/javascript
(rdb:67) request.post? 
true
(rdb:67) 

私は、respond_to ブロックに渡されたオブジェクトが、それが html、js、または json ではないと言っている位置にいますが、リクエストは投稿であり、その形式は text/javascript です。ここで何が欠けているのかわかりません。

4

2 に答える 2

1
<%= form_tag '/tracking/add',  :remote => true, :id => 'add_tracking_request', 'data-type' => 'json' do %>
于 2012-12-21T19:15:59.673 に答える
0

Respond_to ブロックで取得するformatオブジェクトは、応答を収集する単純なコンテナー (コレクター) です。nilスクリプトは実際に定義されているポイントに達していないため、すべてのタイプに対して返されます。

ActionController::MimeResponds::Collectorの実装を参照してください。

于 2012-12-21T19:24:01.207 に答える