2010-03-10 42 views
2

我在单元测试中使用了asserts_redirected_to,并且收到此警告:Ruby on Rails:什么是部分哈希参数和全集参数?

折旧警告:对部分散列参数使用assert_redirected_to已被弃用。改为指定全集参数。

什么是部分哈希参数,什么是全集参数?这些不是我以前在Rails社区中看到过的术语,我在Google上可以找到的唯一相关结果是参考此弃用警告。

这里是我的代码:

assert_redirected_to :controller => :user, :action => :search 

也试过:

assert_redirected_to({:controller => :user, :action => :search}) 

我可能已经猜到了,它觉得我缺少一些参数或类似的东西,但API文档明确地说:并非所有参数都需要包括在内:
http://rails.rubyonrails.org/classes/ActionController/Assertions/ResponseAssertions.html

回答

1
http://github.com/rails/rails/blob/ab6d295ce41ba2aad400474dcf45052e7b631b53/actionpack/lib/action_controller/assertions/response_assertions.rb 

选中此链接。尝试给予你在行动中给出的同样的散列。

+1

所以,事实证明,这是抱怨,我错过了一些参数和API文档简单地忽略提及的功能吧不必提供所有参数的描述已被弃用。哎呀,即使是你所链接的来源的评论说,没有提及弃用就没关系。我甚至无法想象为什么它会被弃用,似乎是能够使用部分哈希的一个重要特性。 无论如何,感谢您对此的帮助。非常感激。 – 2010-03-12 16:35:36

0

它看起来像

assert_redirected_to :action => :show 

是不利超过

assert_redirected_to :action => :show, :controller => :music