はじめに
BoxなどのオンラインストレージからダウンロードしたテキストファイルのFile contentsを文字列型のフィールドにセットし、関数を利用して文字列を加工しようとすると、次のようなエラーが発生します。
エラーが発生する原因は、File contentsがInputStream型であるためです。InputStream型の値に対しては文字列型に対応する関数を適用することができません。
対応方法
対応方法として2つの方法があります。いずれかの方法で対応を行うことで、ダウンロードしたテキストファイルを文字列型として扱えるようになり、文字列型に対応した関数が利用できるようになります。
1.File contentsを一旦変数に格納し、後続のアクションで変数に格納された値を加工する
BoxのFile contentsを変数に格納すると、文字列型の値として自動的にキャストされます。これにより、後続のステップでは変数に格納された値を文字列型の値として扱うことができ、文字列型に対応した関数の利用が可能になります。
2.to_s
メソッドで文字列型にキャストする
File contentsに対してto_s
メソッドを適用することで、文字列型にキャストすることが可能です。
また、to_s
メソッドに続いてメソッドチェーンの形で文字列型に対応した関数の利用も可能です。