APIから特定のリクエスタに送信する際に、すべてのDatetime値をISO 8601に変換する最も簡単なソリューションを探しています。すべてのTime出力をRuby + Grape APIのISO 8601にする方法
class Time
def to_json(options = {})
self.iso8601.to_json
end
end
とのparamsは、リクエストが所望の位置から来たことが示されたブドウのbefore
コールバック内のファイルが必要です。私は次のようにモンキーパッチTime#to_json
することができました。
これを達成するための最良の方法ですか?代わりに、データをループしてそこに値を変換するために、ブドウのafter
コールバックで何かをしていることがありますか? Monkey patching Time#to_json
は仕事を終わらせるが、面白いと感じる。私はRubyには新しいですが。
あなたの本能は良好です。モンキーパッチクラスは最後の手段としてのみ使用してください。あなたのケースでは、プログラムのどこにデフォルトの動作が依存しているかを知っているので、それは悪い考えだと思います。変更が必要なインスタンスを特定できる場合は、このメッセージを個々のTimeインスタンスに追加できます。 –
あなたの 'Time'インスタンスはどこから来ていますか?あなたはバックエンドとして何を使用しますか? 'Time'のラッパー(プレゼンター)クラスを作成して代わりに使用できますか? –