2009-10-07 47 views
1

所以我有一个模型,我需要能够序列化到/从Excel(XLS)文档读取。我对这段代码实际属于哪里感到有些遗憾。我最初的想法是,to_xls是一个视图,但在ActiveRecord中查看(to|from)_xml(to|from)_json之后,我想知道是否这些内容可能属于该模型。或者,它是否属于一个完全独立的容器?把rails放到rails应用程序中的位置

对于什么是值得的,用户将从网站下载模型,在Excel中修改它们,然后发布它们。

回答

0

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目录并为模型类中的每个模型声明自己的解析器。

+0

意识到我需要为几个模型做同样的事情,基本上序列化为一个树形表。主要问题是我是否将其声明为模型组合,或者是作用于具有特定结构的模型的事物。 – 2009-10-14 11:41:05

0

to/from_xls不受Rails支持。有一个插件,但我没有用它to_xls plugin for Rails。使用FasterCSV来获取可用的更好的方法是获取可用的东西。这里有一个例子:Export to_csv from ActiveRecord

+0

我有写的功能来做我想做的事情。我正在努力把重点放在我应该把代码放在哪里。 – 2009-10-08 03:23:49