RESTfulAPIを使用していくつかのXMLデータを返すWebサービスがあります。完全に異なるコントローラーコードを使用して新しいデータベースを実装します。これは、いつか有効になります。ただし、古いデータに対するWS呼び出しでは、引き続き古いDBを使用する必要があります。
現在、URLの一部に日付が含まれています。コントローラの最初でこれを解析してから、古い関数または新しい関数に移ります。
def web_service_action
#shared code between old and new methods
@some_instance_variables = ...
# check the date and fork appropriately
if use_new?
web_service_action_new
else
web_service_action_old
end
def use_new?
date_match = params[:id_string].match(/^.*([0-9]{8})$/)
matched_date = date_match[1]
date = Time.local(date_match[0,4],date_match[4,2],date_match[6,2])
if date >= DATE_CONSTANT
return true
else
return false
end
end
end
どういうわけか、before_filterまたはroutesファイルの条件付きでこれを行う賢い方法があるかどうか疑問に思っていますか?
追加情報:古いバージョンのRails(2.3.x)を使用していますが、新しい方法は完全な書き換えであり、段階的な変更ではありません。