【发布时间】:2015-11-25 10:51:27
【问题描述】:
我在app/views/debtors/index.html.erb 有一个视图,它呈现位于app/views/application/_advanced_search.html.erb 的公共部分。
我想测试index 视图,但还需要存根上述部分。我怎样才能做到这一点?我试过了:
-
stub_template '_advanced_search' => 'Stubbed',但是部分没有找到; -
stub_template '_advanced_search.html.erb' => 'Stubbed',同上; -
view.lookup_context.view_paths.push 'app/views/application'和stub_template '_advanced_search' => 'Stubbed',但随后它开始抱怨在部分中使用了未定义的变量。
我也尝试使用部分的完整路径,但仍然没有运气,它开始说部分丢失。
在 Rails 应用程序中存根公共部分的正确方法是什么?
【问题讨论】:
-
stub_template 'application/_advanced_search' => 'x'呢? -
表示部分丢失。它在
/home/user/project/app/views中查找,然后在application/_advanced_search_controls和application/_advanced_search中查找。 -
奇怪...您可以看到 the implementation 只是将您的存根推到视图路径数组的开头。也许尝试查看该视图路径数组?否则我猜它的rails自动加载“魔法”变得混乱了。
-
路径包含存根模板哈希,但我不知道它们是否正确形成或它们是如何看待的......另外,在我的问题的第三个项目符号中,如果我存根部分,为什么它会为该部分中的未定义变量引发错误?我很不解。
标签: ruby-on-rails ruby rspec partials