我想指定一个我在几种情况下使用的视图。
对于当前规范,视图通常在project_boilerplate_copy_path(@project, @boilerplate_copy)
下调用,结果为/projects/123/boilerplatecopies/321/
。
我现在不确定如何告诉视图规范使用该路由。
require 'rails_helper'
RSpec.describe "boilerplates/show", type: :view do
context 'with findings' do
it "Doesn't render empty url" do
assign :boilerplate, create(:boilerplate_copy, findings: [create(:finding, url: nil)])
render
expect(rendered).not_to have_selector('.url')
end
end
end
这导致:
Failure/Error: render
ActionView::Template::Error:
No route matches {:action=>"index", :controller=>"boilerplate_copies", :locale=>:en}
我试图摆弄RSpec.describe "boilerplates/show"
,但这还没有成功。
以下是我的路线:
scope '(:locale)', locale: /en|de/ do
# ...
resources :projects do
resources :boilerplate_copies
end
# ...
end
答案 0 :(得分:0)
正在呈现模板时发生故障,如消息所示:
Failure/Error: render
至于它失败的原因,我的猜测是模板正在使用帮助程序生成路径/ url,并且帮助程序正在尝试根据错误消息生成/boilerplate_copies
的路径:< / p>
ActionView::Template::Error:
No route matches {:action=>"index", :controller=>"boilerplate_copies", :locale=>:en}
应该生成/projects/:project_id/boilerplate_copies
的路径,因为您的routes.rb
定义了需要:project_id
的嵌套资源。没有看到模板,很难说更多。