2012-03-18 4 views
1

私は私のモデルの中だけでなく、私の意見の内側にアクセスする必要があるいくつかのコードを持っています。両方の場所でヘルパーメソッドを使用できるようにするにはどうすればよいですか?モデル内でSinatraヘルパーを使用するにはどうすればよいですか?

(これは一般的に反パターンであることを認識していますが、私は具体的な必要性を持っていますが、DBにはテーブル間の特定のエントリを参照するための特別な文字列が格納されています。ビューだけでなく、私はモデルでそれを解決する必要がある特殊なテーブル・ルックアップ中から呼び出されるヘルパーでの実際のモデル参照。)

答えて

3
### helpers/my_helper.rb ################################# 
module MyHelper 
    def resolve(path) 
    # …helper code here… 
    end 
    module_method :resolve # Allows `MyHelper.resolve` 
end 
### helpers/init.rb ###################################### 
require_relative 'my_helper' 
MyApp.helpers MyHelper  # Module's methods as helpers 
### models/init.rb ####################################### 
require_relative '../helpers/my_helper' # *vomit* 
require_relative 'my_model' 
### models/my_model.rb ################################### 
class MyModel < Sequel::Model 
    def reference 
    MyHelper.resolve(the_path) 
    end 
end 
関連する問題