作者godfat (godfat 真常)
看板Ruby
标题Re: [问题] 有个地方我不太懂,关於 xhr()/xmlhttp …
时间Fri Dec 22 11:00:20 2006
※ 引述《xamous (一天死去一点)》之铭言:
: 看到 functional testing 的地方有点疑问,p.200-201 页说 xhr/xml_
: http_request 的参数是 xml_http_request(method, action, parameters,
: session, flash),第一个参数是指定 :get 或 :post 的方法
:
: 但是在 p.207 user_story_test.rb 里面使用这个 method 却是用
: xml_http_request "/store/add_to_cart", :id => ruby_book.id
: 没有指定第一个参数 method。我本来以为是直接用预设的参数,
: 试着加上 :post,却会引发错误:
:
: NoMethodError: undefined method `[]' for :get:Symbol
:
: 看 http://api.rubyonrails.org 里面 xhr 第一个参数也是 request_method,
: 不太明白在这里用法为什麽不太一样... @@
老实讲这种时候翻 src 最快… XD
我用 grep 暴力找到了两个 xml_http_request 的定义
(bbs 宽度太少我随意重新排版)
in
/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_controller/
test_process.rb:
module ActionController
module TestProcess
def xml_http_request(request_method, action, parameters = nil,
session = nil, flash = nil)
@request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
@request.env['HTTP_ACCEPT'] = 'text/javascript, text/html,
application/xml, text/xml, */*'
returning self.send(request_method, action, parameters, session, flash)
do
@request.env.delete 'HTTP_X_REQUESTED_WITH'
@request.env.delete 'HTTP_ACCEPT'
end
end
alias xhr :xml_http_request
end
end
另一个是
in
/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_controller/
integration.rb:
module ActionController
module Integration
class Session
def xml_http_request(path, parameters=nil, headers=nil)
headers = (headers || {}).merge(
"X-Requested-With" => "XMLHttpRequest",
"Accept" => "text/javascript, text/html, application/xml, text/xml, */*"
)
post(path, parameters, headers)
end
end
end
end
跟 Rails 不熟,就请自己看看哪边应该用哪个吧 @_@b
--
「行け!Loki!」
(rocky ロッキー)
-Gurumin ぐるみん 王子? XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.73.200
1F:推 xamous:看来是第二个.... 不过这第二个为什麽api文件找不到呢 @@ 12/22 11:35
3F:推 deduce:api就有show source可以用了啊~不过grep出来也满快的XD 12/22 13:13
4F:推 xamous:哈 找到了 = = 果然是没 search 清楚,感谢 :) 12/22 16:18