Ruby on rails 图像\标记在ActionView FormBuilder帮助程序中不起作用
我在ActionView表单生成器中添加了一个Ruby on rails 图像\标记在ActionView FormBuilder帮助程序中不起作用,ruby-on-rails,ruby-on-rails-4,sprockets,Ruby On Rails,Ruby On Rails 4,Sprockets,我在ActionView表单生成器中添加了一个语言\u select方法: # app/helpers/form_helper.rb class ActionView::Helpers::FormBuilder include ActionView::Helpers::TagHelper include ActionView::Helpers::FormTagHelper include ActionView::Helpers::FormOptionsHelper include
语言\u select
方法:
# app/helpers/form_helper.rb
class ActionView::Helpers::FormBuilder
include ActionView::Helpers::TagHelper
include ActionView::Helpers::FormTagHelper
include ActionView::Helpers::FormOptionsHelper
include ActionView::Helpers::AssetTagHelper
def language_select(method, options = {})
image_tag("language-flags/16/en.png")
end
end
问题是image\u标记
将图像返回到不存在的/images/language flags/16/en.png
。我在app/assets/images/language flags/16/fr.png中确实有一个图像,但它没有通过链轮中间件提供服务。其他地方的image\u标签
工作正常
在查看Rails的源代码之后,这似乎是
image\u tag
的标准行为,更准确地说是asset\u path
,链轮实际上修改了此行为,以包括例如文件摘要。这种对资产路径的修改似乎在此上下文中不可用。解决方案是在表单生成器的上下文中调用@template
属性上的视图帮助程序(如图像标记
)
def language_select(method, options = {})
@template.image_tag("language-flags/16/en.png")
end