2012-08-04 65 views
0

我正在開發一個Sinatra應用程序。爲了簡化未來支持的結構,我添加了一些定製類,位於單獨的文件中。我想要做的是讓他們使用現有的助手和sinatra自己的功能(模型,會話等),而不必重複代碼。與Sinatra一起使用自定義類

例如,我有一個幫手to_html(文本),我想在sinatra路線和我自己的類中使用它,這些類也在路徑中使用。

我的sinatra應用程序是寫在經典風格(如果它對你的建議很重要)。

可能嗎?

+0

我想你只需要在用於運行服務器的主文件中的'require'sinatra''後面加上'require'my_class''。 – 2012-08-04 12:46:13

+0

不,它沒有看到幫助器方法: NameError - 未定義的局部變量或方法'current_user' – mie 2012-08-04 13:01:29

+1

請提供一個最小的代碼示例,展示您描述的問題。 – 2012-08-04 14:19:49

回答

0

假設您在項目的根目錄中有一個助手目錄,您可以在用於運行服務器的應用程序文件內部執行此類操作。

%w(helpers).each { |p| Dir[File.join(File.dirname(__FILE__), p, "*.rb")].each { |file| require file } } 

您將需要包括您的路線下面這個工作。爲了使它更清潔,你也可以有一個routes/controllers目錄。只需簡單地將「路線」添加到該陣列中即可:

%w(helpers routes).each { |p| Dir[File.join(File.dirname(__FILE__), p, "*.rb")].each { |file| require file } } 

這將要求您的所有幫手都是您的路線。

相關問題