Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么request.format是text/javascript,而respond#u to format表示它';不是吗?_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 为什么request.format是text/javascript,而respond#u to format表示它';不是吗?

Ruby on rails 为什么request.format是text/javascript,而respond#u to format表示它';不是吗?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,轨道3.1.1 我正在设置一个对话框,该对话框应该通过ajax发回服务器,然后在完成后显示一条“完成”消息 <%= form_tag '/tracking/add', :remote => true, :id => 'add_tracking_request', :html => {:'data-type' => 'json'} do %> .... true,:id=>“添加跟踪请求”, :html=>{:'data-type'=>

轨道3.1.1

我正在设置一个对话框,该对话框应该通过ajax发回服务器,然后在完成后显示一条“完成”消息

  <%= form_tag '/tracking/add',  :remote => true, :id => 'add_tracking_request', 
      :html => {:'data-type' => 'json'} do %>
  ....
true,:id=>“添加跟踪请求”,
:html=>{:'data-type'=>'json'}do%>
....
好的,那就是回到服务器,完成它的所有工作等,然后对以下内容做出响应:

   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) 
135将“返回…”
136如果当前用户
137回应待办事项格式|
138调试器
=>139 format.html{redirect_to:myTrackingRequests and return}
140 format.js{head:ok,:success=>true}
141结束
142其他
143提出“创建跟踪结束时未找到用户”
(rdb:67)e格式
#
(rdb:67)e format.html
无
(rdb:67)e format.js
无
(rdb:67)e format.json
无
(rdb:67)request.format
文本/javascript
(rdb:67)request.post?
真的
(rdb:67)
我所处的位置是,传递给response_to block的对象表示它不是html、js或json,但请求是一个post,其格式是text/javascript。我不确定我错过了什么

true,:id=>“添加跟踪请求”,“数据类型”=>“json”do%>
<%= form_tag '/tracking/add',  :remote => true, :id => 'add_tracking_request', 'data-type' => 'json' do %>

在respond\u to块中获得的
格式
对象只是收集响应的简单容器(收集器)。对于每种类型,它都返回
nil
,因为脚本尚未到达实际定义它们的位置


请参见此处的实现。

我认为:html散列中已经涵盖了这一点。不?不,看看html源代码:html=>{}puts属性html=“…”废话,你说得对。我从某人的Rails博客文章中删除了该代码。。。想知道它怎么会这么错。好吧,修复它并没有修复respond_to的问题;format.json和format.js一样仍然为零。阅读下一个答案。检查它:放入模板并查看它是否返回true我已经看到在许多控制器操作结束时,它会做出响应。所以在我看来是对的。你确定吗?是的,看看实现。使用它没有什么错,它只是一个容器,不做任何其他事情。您可以自己调用它,format.text{“Yay!”},然后format.text.call