所以我有一个模型,我需要能够序列化到/从Excel(XLS)文档读取。我对这段代码实际属于哪里感到有些遗憾。我最初的想法是,to_xls是一个视图,但在ActiveRecord中查看(to|from)_xml
和(to|from)_json
之后,我想知道是否这些内容可能属于该模型。或者,它是否属于一个完全独立的容器?把rails放到rails应用程序中的位置
对于什么是值得的,用户将从网站下载模型,在Excel中修改它们,然后发布它们。
所以我有一个模型,我需要能够序列化到/从Excel(XLS)文档读取。我对这段代码实际属于哪里感到有些遗憾。我最初的想法是,to_xls是一个视图,但在ActiveRecord中查看(to|from)_xml
和(to|from)_json
之后,我想知道是否这些内容可能属于该模型。或者,它是否属于一个完全独立的容器?把rails放到rails应用程序中的位置
对于什么是值得的,用户将从网站下载模型,在Excel中修改它们,然后发布它们。
to_xls
应该绝对是一个视图。我会尝试一个/app/views/foos/show.xls.erb
,但是如果您不喜欢ERB的XLS视图,请尝试RbTemplateHandler以在纯Ruby中进行渲染。
from_xls
是一个完全不同的野兽。它当然不属于控制器。它在逻辑上属于模型,但我将它提取到一个混合。如果你只在XLS拉动了一个模型,那么下面的设置应该足够了:
# app/models/foo.rb
class Foo
extend XLS2Foo
...
end
# lib/foo_from_xls
module XLS2Foo
def to_foo(xls)
...
end
end
如果你需要做的一堆模型,你可以在你尝试分析器生成DSL lib
目录并为模型类中的每个模型声明自己的解析器。
to/from_xls不受Rails支持。有一个插件,但我没有用它to_xls plugin for Rails。使用FasterCSV来获取可用的更好的方法是获取可用的东西。这里有一个例子:Export to_csv from ActiveRecord
我有写的功能来做我想做的事情。我正在努力把重点放在我应该把代码放在哪里。 – 2009-10-08 03:23:49
意识到我需要为几个模型做同样的事情,基本上序列化为一个树形表。主要问题是我是否将其声明为模型组合,或者是作用于具有特定结构的模型的事物。 – 2009-10-14 11:41:05