2011-07-06 5 views
0

ユーザーが画像をアップロードして特定のモデルに関連付けることができるようにしたい。マイグレーションを作成するとき、自分の列にはどのようなタイプを使用しますか?あなたはあなたのための画像のアップロードを処理するためにPaperclipのようなものを使用して検討しているが、 -Rails:モデル内の列に画像を使用する

<%= form_for @person, :html => {:multipart => true} do |f| %> 
<%= f.file_field :picture %> 
<% end %> 

みんなありがとう:)おそらく:binary

+0

画像をすぐに利用できるようにするには、画像がサイトのページに表示されるようにするには、画像をデータベースに保存しないでください。以下に良い提案があります。 –

答えて

4

:ビューでは、私はそれが次のようになりたいですか?そうでなければ本当に複雑になることがあります。

+0

もっと複雑になる理由を説明できますか?私が使用したい画像は約20kbです – bdeonovic

+1

バリデーションを処理して(悪いものがアップロードされないように)、データベース(サーバやクラウドストレージシステムとは対照的に)にバイナリデータを保存することを気にしない場合は、 、あなたはそれを行うことができます。しかし、Paperclipのような宝石は、仕事が少なくて済むように、必要なものすべてを提供します。 – Slick23

1

PaperclipまたはCarrierwaveのような外部プラグインの使用をお勧めします。

+0

理由を説明できますか? – bdeonovic

+1

アップロード用にgemを使用する場合は+1してください。あなたは車輪を再構築したくありません。私が強く推奨するcarrierwave上の優れたrailscastがあります。 http://railscasts.com/episodes/253-carrierwave-file-uploads – paukul

+1

@ベンジャミン:自分ですべてを発明するよりも簡単だから。どちらのプラグインも、データベースではなく、複数のバージョンへのスケーリングと様々なバックエンド(ローカルファイルシステム、Amazon S3、MongoDB GridFS、名前)での保存に優れています。 BLOBを使用してリレーショナルデータベースにファイルを格納することは、大量の(大きな)ファイルを格納するための最適なオプションではないことがよくあります)。 – Martijn

1

クラウドストレージだけが必要な場合は、AWS-3 gemもあります。私はパフォーマンスだけでDBに画像を保存しないと思うでしょう。

+1

詳細を見ると、その宝石はRails 3用に更新されないかもしれませんが、フォークが更新されるかもしれません。 – Ben