1

ApplicationControllerに追加geocode_ip_addressしたので、セッションからユーザーの場所情報を取得できます。

Geokitに対してチェックしたくないコントローラーがいくつかあります。それは本当にアプリケーションを遅くし、そこでジオチェックの必要はありません。

のように呼ばれているのでgeocode_ip_addressbefore_filter私は使用できませんskip_before_filter

何か案が?

4

2 に答える 2

3

実際にはstore_ip_locationフィルターを使用しているので、

skip_before_filter :store_ip_location

とはいえ、地理コードの結果は、サービス呼び出しを行う前にチェックされているCookie内に格納されるため、後続の呼び出しがパフォーマンスにそれほど影響を与えることはありません。

于 2012-05-10T00:34:31.163 に答える
-1

次のように、使用しているコントローラーに基づいてコードを選択的に呼び出さないようにすることができます。

unless ["controller1", "controller2", "etc"].member?(params[:controller])
 geocode_ip_address
end

コードを実行したくないコントローラーの名前をリストに入れてください。そうすれば、それらのコントローラーでは呼び出されません。

次のようなコントローラーのリストである定数を作成することもできます。

CONTROLLERS_TO_NOT_FILTER_BY_GEOCODE = ["controller1", "controller2", "etc"]

unless CONTROLLERS_TO_NOT_FILTER_BY_GEOCODE.member?(params[:controller])
 geocode_ip_address
end
于 2012-05-10T00:30:19.550 に答える