【问题标题】:Ruby on Rails: What are partial hash arguments and full set arguments?Ruby on Rails:什么是部分散列参数和完整集参数?
【发布时间】:2010-03-10 07:09:27
【问题描述】:

我在单元测试中使用了 asserts_redirected_to,我收到了这个警告:

弃用警告:不推荐使用带有部分哈希参数的 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

【问题讨论】:

    标签: ruby-on-rails deprecated


    【解决方案1】:
    http://github.com/rails/rails/blob/ab6d295ce41ba2aad400474dcf45052e7b631b53/actionpack/lib/action_controller/assertions/response_assertions.rb
    

    检查此链接。尝试给出你在操作中给出的相同哈希值。

    【讨论】:

    • 所以事实证明它抱怨我缺少一些参数,而 API 文档只是忽略了提到它描述的不必提供所有参数的特性已被弃用。哎呀,即使是您链接到的来源上的 cmets 也说没关系,而无需提及弃用。我什至无法想象它为什么被弃用,这似乎是能够使用部分哈希的一个重要特性。无论如何,感谢您对此的帮助。非常感谢。
    【解决方案2】:

    看起来像

    assert_redirected_to :action => :show
    

    不喜欢

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

    【讨论】:

      猜你喜欢
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多