Re: [問題] 有個地方我不太懂,關於 xhr()/xmlhttp …
※ 引述《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
推
12/22 11:35, , 1F
12/22 11:35, 1F
推
12/22 11:38, , 2F
12/22 11:38, 2F
推
12/22 13:13, , 3F
12/22 13:13, 3F
推
12/22 16:18, , 4F
12/22 16:18, 4F
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章