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的位置,但请求是一个帖子,它的格式是文本/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 回答