Userモデルに画像の登録可能のプロフィールモデルを作成する。
今日はrailsのgem deviseで作成したuserモデルにprofile画像を追加する方法を振り返ります。
ユーザー登録した後にあとで自分の画像や背景画像、自己紹介コメントを追加するような形で考えています。
まずrails g model Profileでprofilesモデルの作成
create_profiles.rbファイルに
userモデルとprofileモデルは今回は1対1の関係なので、user.rbに
profileモデル、profile.rbに
と記載する。
ここで一度、rails db:migrateをしておく。
次に画像upload用にgemファイルに
の記載を追加。
ターミナルでimagemagickのinstallがまだであれば
brew install imagemagick
bundle install、
rails g uploader image
rails g uploader backimage
upload用のファイルを作成をします。
次にprofile.rbに
の記載、それぞれのuploader.rb内にコメントアウトされている
の部分を有効にして保存する画像ファイルのサイズを指定してください。
(今回はヨコ、タテとも400pxで保存するようにしました。
この時、uploader.rb内にコメントアウトした形で
となっている部分があるのでここを有効にし、画像を指定しておくと画像ない時に表示されるようになるのでおすすめです。
最後にrails db:migratesしておきましょう。
当初、gem deviseで作成したuserモデルにカラムを追加する形で進めていましたが、
プロフィール欄で同じタイミングで新規登録しないような状況だと
コントローラー内のデータの受け渡しで相性の悪さを感じたため別モデルでの作成に切り替えました。
上記の方法に切り替えた後はスムーズに作成出来たので同じタイミングで作成しない情報は別テーブルに保存した方がいいように思いました。
以上、お読みいただきありがとうございました。