1

所以我有一个模型,我需要能够从 Excel(XLS)文档中序列化/读取。对于这段代码的实际归属,我有点不知所措。我最初的想法是 to_xls 是一个视图,但是在四处浏览并看到 ActiveRecord 中的和之类的东西之后(to|from)_xml(to|from)_json我想知道这些东西是否属于模型。或者,它是否属于某个完全独立的容器?

值得一提的是,用户将从网站下载模型,在 excel 中修改它们,然后发布它们。

4

2 回答 2

0

to_xls绝对应该是一种看法。我会尝试 a /app/views/foos/show.xls.erb,但如果您不喜欢 ERB 用于 XLS 视图,请尝试使用RbTemplateHandler在纯 Ruby 中进行渲染。

from_xls完全是另一种野兽。它当然不属于控制器。它在逻辑上属于模型,但我会将其提取到 mixin 中。如果您只为一个模型引入 XLS,那么以下设置就足够了:

# app/models/foo.rb
class Foo
  extend XLS2Foo
  ...
end

# lib/foo_from_xls
module XLS2Foo
  def to_foo(xls)
    ...
  end
end

如果您需要为一堆模型执行此操作,您可以尝试在您的lib目录中使用解析器生成器 DSL,并为模型类中的每个模型声明自己的解析器。

于 2009-10-08T00:30:40.803 回答
0

Rails 不支持 to/from_xls。有一个插件,但我还没有将它用于 Rails 的 to_xls 插件。更好的方法可能是让您使用FasterCSV 进出CSV并获得可用的东西。这是一个示例:从 ActiveRecord 导出 to_csv

于 2009-10-08T03:00:25.387 回答