所以我有一個模型,我需要能夠序列化到/從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