我在帮助程序模块中有自定义表单构建器方法。
module MediaHelper
class CustomFormBuilder < ActionView::Helpers::FormBuilder
...
end
def custom_form_for(data, *args, &proc)
options = args.extract_options!
form_for(data, *(args << options.merge(builder:
MediaHelper::CustomFormBuilder)), &proc)
end
end
这适用于<= custom_form_for(media) do |f| %>
但是它打破了RSpec 3中的视图规范,我收到错误消息
ActionView::Template::Error: undefined method custom_form_for' for #<#<Class:0x007fea32454ce0>:0x007fea34064f98>
on render
是否可以包含帮助程序?
答案 0 :(得分:3)
自定义帮助程序可以包含在helper(<module>)
在我的案例中的视图规范中:
RSpec.describe 'media_items/new', type: :view do
helper(MediaHelper)
end
在规范中调用render
时,它会使用<= custom_form_for(media) do |f| %>
正确呈现视图