为什么request.format是text / javascript,而respond_to格式说它不是?

时间:2012-12-21 18:16:22

标签: ruby-on-rails ruby-on-rails-3

Rails 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。我不确定我在这里缺少什么。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您在respond_to块中获得的format对象只是收集响应的简单容器(收集器)。它为每种类型返回nil,因为脚本尚未到达实际定义的位置。

请参阅此处的实施ActionController::MimeResponds::Collector