ActiveRecordのcreateメソッドを使用してバイナリカラムをロードする方法は簡単ですか?例えばActiveRecord経由でファイルからバイナリデータをロードする
、私がやろうとしていることは、これに似たものです:私はこの作業を取得することができました
MyTableObject.create :name => "Test", :image => File.read("PathToMyFile.jpg")
ActiveRecordのcreateメソッドを使用してバイナリカラムをロードする方法は簡単ですか?例えばActiveRecord経由でファイルからバイナリデータをロードする
、私がやろうとしていることは、これに似たものです:私はこの作業を取得することができました
MyTableObject.create :name => "Test", :image => File.read("PathToMyFile.jpg")
。むしろ行うより:
MyTableObject.create(
:name => "Test",
:image => File.read("PathToMyFile.jpg")
)
がデータベースにレコードを挿入なかったが、ファイル
MyTableObject.create(
:name => "Test",
:image => File.open("PathToMyFile.jpg", 'rb').read
)
の正しいバイナリ表現せずにトリックを行うように見えました。
Windowsのみの問題です.LinuxやOSXのようなUnix系のバイナリやテキストファイルでは扱いが異なるため、明示的な 'rb'モードのパラメータが正しく読み込まれる必要があります。 –
Windowsのみの問題ではありません。私はUNIXシステム(XUBUNTU、正確には)で同じ問題を抱えていました。そして、私のシステムでも推奨される解決策が働いていました。 –
これは機能しませんか? –
それは間違っているのでなければ...そうではないようです。 createメソッドはtrueを返し、DBにレコードを表示します。ただし、イメージは回復可能ではなく、報告されたファイルサイズは一致しません。 – jerhinesmith