2012-11-01 12 views

回答

10

我會創建的應用程序稱爲reports目錄,並把所有的我的報告在那裏。

只要文件名和類遵循常規慣例,就可以找到rails中應用程序目錄中的所有內容。

例如,如果你有在app/reports/example_report.rb如下:

class ExampleReport 
    def initialize 
    ... 
    end 
end 

你將能夠使用它從你的控制器是這樣:依靠模型

class SomethingController < ApplicationController 
    def something 
    example = ExampleReport.new 
    ... 
    end 
end 

報告被認爲是部分你的應用程序的域名,這就是爲什麼我建議應用程序目錄。在應用程序中輕鬆添加子目錄意味着您可以在應用程序中保持不同角色的邏輯分離。不難猜測某個東西的實現在哪裏。控制器在app/controllers中,型號爲app/models,因此報告爲app/reports。例如,如果您要將通用服務類添加到您的應用程序,則可以使用app/services

相反,它們不屬於lib,因爲它們不能以通用方式運行。爲了進一步說明這一點,只有您可以設想在任何 rails項目中使用的代碼才屬於lib目錄。

+0

優秀的答案。謝謝。 –

0

我會說那樣的東西屬於輔助方法/方法。

-1

Helpers應該是更好的地方把這些代碼,

還要確保純粹的邏輯相關的代碼讀取/處理的數據應該還是去model

+0

糾正我,如果我錯了,但不是旨在定義格式數據的方法的幫助器?打印字符串或不同格式的數字?他們應該管理關於數據的邏輯嗎?你說這應該去我的模型,但如果我沒有與該報告相關的模型?我應該爲每個要生成的報告創建一個非持久模型嗎? –

相關問題