こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 Ruby on Railsでアップローダーを新規作成するrails generate uploaderコマンドについて丁寧に解説します。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
Ruby on Railsのバージョン | 6.0.3.6 |
この記事ではRuby on Railsのプロジェクトは
C:\rails_study\sample
に作成しています。
アップローダーを新規作成するためには、CarrierWaveのgemをインストールしておく必要があります。
インストールするやり方は、こちらの記事をご参考ください。
Ruby on Railsでアップローダーを新規作成するコマンドを解説
Ruby on Railsでアップローダーを新規作成するコマンドを解説します。
コマンドプロンプトを開きプロジェクトがある場所まで移動させます。
- コマンドプロンプトを開き、cdコマンドで移動
- エクスプローラーからコマンドプロンプトを起動
のどちらかで移動させてください。
エクスプローラーからコマンドプロンプトを起動するやり方は、下記の記事をご参考ください。
この記事では、
C:\rails_study\sample
まで移動します。
では、アップローダーを新規作成します。
アップローダーを新規作成するためのコマンドは、
1 |
rails generate uploader 【アップローダー名】 |
です。
このコマンドをたたくと
C:\rails_study\sample\app\uploaders
配下に【アップローダー名_uploader.rb】というファイルが新規作成されます。
(※もし「uploaders」というディレクトリが存在しなくても、コマンドをたたいたときに自動で生成されるので問題ありません。)
この記事では、【sample_uploader】を新規作成します。
コマンドは
1 |
rails generate uploader sample |
になります。
たたくと
1 2 |
C:\rails_study\sample>rails generate uploader sample create app/uploaders/sample_uploader.rb |
とメッセージが表示されていれば、無事作成がされています。
C:\rails_study\sample\app\uploaders
配下を確認してみると、【アップローダー名_uploader.rb】というファイルが新規作成されていることが確認できます。
アップローダーファイルは以下の中身で新規作成されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
class SampleUploader < CarrierWave::Uploader::Base # Include RMagick or MiniMagick support: # include CarrierWave::RMagick # include CarrierWave::MiniMagick # Choose what kind of storage to use for this uploader: storage :file # storage :fog # Override the directory where uploaded files will be stored. # This is a sensible default for uploaders that are meant to be mounted: def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end # Provide a default URL as a default if there hasn't been a file uploaded: # def default_url(*args) # # For Rails 3.1+ asset pipeline compatibility: # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) # # "/images/fallback/" + [version_name, "default.png"].compact.join('_') # end # Process files as they are uploaded: # process scale: [200, 300] # # def scale(width, height) # # do something # end # Create different versions of your uploaded files: # version :thumb do # process resize_to_fit: [50, 50] # end # Add an allowlist of extensions which are allowed to be uploaded. # For images you might use something like this: # def extension_allowlist # %w(jpg jpeg gif png) # end # Override the filename of the uploaded files: # Avoid using model.id or version_name here, see uploader/store.rb for details. # def filename # "something.jpg" if original_filename # end end |
まとめ:Ruby on Railsでアップローダーを新規作成してみよう
以上がRuby on Railsでアップローダーを新規作成するrails generate uploaderコマンドの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント