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。我不确定我在这里缺少什么。
答案 0 :(得分:1)
<%= form_tag '/tracking/add', :remote => true, :id => 'add_tracking_request', 'data-type' => 'json' do %>
答案 1 :(得分:0)
您在respond_to块中获得的format
对象只是收集响应的简单容器(收集器)。它为每种类型返回nil
,因为脚本尚未到达实际定义的位置。