提交 fd65d89e 编写于 作者: M Michael Koziarski

Allow you to delete cookies with options. Closes #3685 [josh, Chris Wanstrath]



git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7160 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 a450e769
*SVN*
* Allow you to delete cookies with options. Closes #3685 [josh, Chris Wanstrath]
* Allow you to render views with periods in the name. Closes #8076 [norbert]
render :partial => 'show.html.erb'
......
......@@ -62,9 +62,11 @@ def []=(name, options)
end
# Removes the cookie on the client machine by setting the value to an empty string
# and setting its expiration date into the past
def delete(name)
set_cookie("name" => name.to_s, "value" => "", "expires" => Time.at(0))
# and setting its expiration date into the past. Like []=, you can pass in an options
# hash to delete cookies with extra data such as a +path+.
def delete(name, options = {})
options.stringify_keys!
set_cookie(options.merge("name" => name.to_s, "value" => "", "expires" => Time.at(0)))
end
private
......
......@@ -31,6 +31,11 @@ def logout
cookies.delete("user_name")
end
def delete_cookie_with_path
cookies.delete("user_name", :path => '/beaten')
render_text "hello world"
end
def rescue_action(e)
raise unless ActionController::MissingTemplate # No templates here, and we don't care about the output
end
......@@ -85,4 +90,10 @@ def test_cookiejar_accessor
assert_equal "david", jar["user_name"]
assert_equal nil, jar["something_else"]
end
def test_delete_cookie_with_path
get :delete_cookie_with_path
assert_equal "/beaten", @response.headers["cookie"].first.path
assert_not_equal "/", @response.headers["cookie"].first.path
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册