10

私のapplication_helper.rbファイルには、次のような関数があります。

def internal_request?
  server_name = request.env['SERVER_NAME']
  [plus more code...]
end

この関数は、コントローラー、モデル、およびビューで必要です。そこで、このコードをディレクトリ内のユーティリティ関数ファイルに入れましたlib/requestしかし、これは機能しませんでした。定義されていないという苦情がありました。

requestディレクトリ内のファイル内のオブジェクトにアクセスするにはどうすればよいlib/ですか?

4

1 に答える 1

2

ここで機能すると思われる最も簡単なことは、リクエストオブジェクトをメソッドに渡すことです。

def internal_request?(request)
 server_name = request.env['SERVER_NAME']
 [plus more code...]
end

このメソッドが呼び出されているときはいつでも要求が行われ、それをメソッドに渡すことができると想定されています。

モデルがこのメソッドを直接呼び出す必要があるシナリオを考えようとしています。これがコントローラーのinternal_requestであるかどうかを確認し(ビューで必要な場合は、コントローラーでhelper_methodとしてマークします)、モデルにinternal_requestであると伝えるとよいでしょう。

于 2012-04-24T11:41:39.950 に答える