これは簡単ですが、私はレールが初めてです。私は写真をアップロードしてRuby on Railsに表示する最善の方法を探しています。私はブログを持っていて、投稿を作成するときに写真を添付するオプションが必要です。写真をアップロードするRuby on Rails
答えて
ペーパークリップは非常に素晴らしいです。それについての優れたRailsCastがあります - あなたはあなたのような何かを行うことができ、依存関係を追加すると、あなたのDBでBLOBとして画像を保存したくない、派手な機能を必要としないと仮定すると、http://railscasts.com/episodes/134-paperclip
多くの人がPaperClipをお勧めします。おそらく最初にそれを試してみたいです。
:
モデル:
class Image < ActiveRecord::Base
def img=(input_data)
self.filename = input_data.original_filename
self.filetype = input_data.content_type.chomp
self.img = input_data.read
end
end
コントローラー:
class ImagesController < ApplicationController
def display_img
@img = Image.find(params[:id])
send_data(@img.img, :type => @img.filetype, :filename => @img.filename,
:disposition => 'inline')
end
end
Here's a linkより完全なチュートリアルへ。
attachment_fu(http://github.com/technoweenie/attachment_fu
)は個人的にはpaperclipをお勧めしますが、別のオプションです。それは大きなプラスであるRmagickを必要とせず、マイナーコンフィグレーションでS3へのアップロードのようないくつかのクールな機能をサポートします。
CarrierWaveはPaperclipより新しい宝石で、より柔軟に見えます。 レールウェストもあります:http://railscasts.com/episodes/253-carrierwave-file-uploads
CarrierWaveは、おそらくRailsでの画像アップロードに最適なソリューションです。 次の記事では、CarrierWaveを使用した画像アップロードのソリューションについて説明していますが、画像変換はクラウド内でシームレスに行われます。アップロードされた画像はクラウドに保存され、CDN経由で配信されます。 RMagick、MiniMagick、ImageMagickをインストールする必要はありません。 http://cloudinary.com/blog/ruby_on_rails_image_uploads_with_carrierwave_and_cloudinary
多くの人がCarrierwave
を使用することをお勧めしますが、私は例外ではありませんが、1つのことを指摘したいと思います。 RoRで書かれた多くのサイトでは(明らかにRoRの問題だけではない)、画像を送信しているリクエストが2-3秒間保留されていることに気付くことが多く、アプリケーションインスタンスを結びつけることが多い(おそらく恐ろしいあなたがスレッドを使用している場合やパフォーマンスについてはあまり気にしませんが、ユニコーンを使用している場合は間違いありません)。
1)アプリのいくつかの背景ワーカー(私は通常Sidekiqで行く)
2)あなたのGemfileにcarrierwave_backgrounder
を追加し、あなたで動作するように設定選ぶ:だから私はcarrierwaveを使用することを回避する方法を説明しますバックグラウンドワーカーとcarrierwave(そのreadmeのすべて)
私は通常私のディレクトリを管理しているので、私は、ファイルシステムやS3またはあなたが
を使用しているものは何でもして画像を処理し、格納carrierwave_backgrounder
の
store_in_background
オプションで行きます
3)今、あなたのアプリケーションのインスタンスを解放する、ほとんどの場合、1秒以上の時間がかかり、ユーザーに何らかの応答を返す必要があります。
4)最も簡単ですユーザーに何らかの応答を提供する方法は、古い写真をGIFに変更して、その写真を処理したかどうかを確認する関数SetInterval
()を変更する機能を提供するjavascriptを返すことです。処理が完了したらモデルのブール型列をtrueに設定します)、AJAX
リクエストを2秒ごとに送信するか、好みの処理を行い、処理されたときに画像を変更します。
アンタイドアプリケーションインスタンスと優れたユーザーエクスペリエンスが同時に実現しました。私は、このガイドでは、私が
はそれが誰かを助けいただければ幸い見逃しているいくつかの注意点があり、それ自体の開発をレールとウェブに新しいです
PS。
ああ、ところで、refile
と呼ばれるこの新しい宝石があります。それは驚くべきことであり、場合によっては本当に良い選択肢になります。
- 1. Ruby on Rails:写真の新しいコントローラですか?
- 2. Carrierwaveマルチファイル(写真)アップロード
- 3. Ruby On Rails - Lynda.com - チューターファイルをアップロード
- 4. アップロード写真
- 5. プロフィール写真アップロード
- 6. 写真アップロードCodeIgniter
- 7. Android:アップロード写真
- 8. アップロード写真
- 9. アップロード写真
- 10. PhotobucketNet写真アップロード
- 11. iOSアップロード写真
- 12. Facebookの写真アップロード
- 13. アップロードした写真を表示する方法Ruby?
- 14. オフラインで写真をウェブサーバから写真でアップロードする
- 15. Ruby on Rails:モバイルからの画像アップロード
- 16. リストに写真をアップロード
- 17. Facebookの写真をアップロード
- 18. phpで写真をアップロード
- 19. 写真をASIHTTPRequestでアップロードする
- 20. PHP:モバイルから写真をアップロードする
- 21. GPS位置で写真をアップロードする
- 22. iPhone:Twitterに写真をアップロードするには
- 23. 写真を別のドメインにアップロードする
- 24. ノードサーバにネイティブで写真をアップロードする
- 25. AppEngineに写真をアップロードする方法
- 26. Djangoに写真をアップロードするには
- 27. 写真をアップロードするときのタイムアウト
- 28. ユーザープロフィール写真をアップロードする - ガイドライン
- 29. Facebookに写真をアップロードするページ
- 30. attachment_fuを使ってiPhoneからRailsへの写真をアップロード
大きなブロブをデータベースに格納しないようにしてください。それは良い考えではありません。 – bensie