【问题标题】:How to extend ActionView::Template::Types如何扩展 ActionView::Template::Types
【发布时间】:2019-08-23 22:15:54
【问题描述】:

在 Rails 6.0 中,to_spreadsheet gem 会引发以下错误:

Invalid formats: "xlsx", "html"
…/gems/actionview-6.0.0/lib/action_view/lookup_context.rb:288:in `formats='

抛开这颗宝石不谈,当使用 ActionViews Template types.rb 中定义的一些基本格式 ([:html, :text, :js, :css, :xml, :json]) 以外的格式时,ActionViews lookup_context.rb 现在似乎会引发 ArgumentError

我尝试像这样扩展基本类型:

ActionView::Template::Types.symbols.concat([:xlsx, 'xlsx', 'html'])

虽然这确实增加了ActionView::Template::Types,但Rails 仍然会引发上述ArgumentError

那么这些类型真的可以像我一样扩展吗?或者我是在完全错误的轨道上来减轻这个错误?

注意:.xlsx 的 MIME-Type 已由 gem 注册,这就是它与 Rails 版本

【问题讨论】:

  • 你是如何解决这个问题的?

标签: ruby-on-rails ruby-on-rails-6


【解决方案1】:

要注册一个新的 MIME 类型,您应该将其添加到 config/initializers/mime_types.rb...其中应该有一个如何添加 MIME 类型 (# Mime::Type.register "text/richtext", :rtf) 的注释示例。

我会考虑不使用to_spreadsheet gem。最后一次提交是 9 个月前。这可能并不意味着它不起作用......但我会持怀疑态度。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-05-15
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
  • 2011-01-29
  • 1970-01-01
相关资源
最近更新 更多