ProgateのRuby on Railsまとめ⑤(ⅥとⅦ)

【Ruby on Rails Ⅵ】

📖モデルとテーブルを作成
🌟$rails g model User name:string email:string
$rails db:migrate
→usersテーブルを作成してカラムを2つ用意
※複数並べられる
※stringは短い文字列
→データベースに反映させる

📖バリデーションの設定
→validates :email,{uniqueness:true}
※値の重複がないかチェック
📖ユーザーの一覧ページ、詳細ページ、新規登録ページを作る
※新規登録ページのURLはsignup
📖フォームのname属性指定、フォームタグ、バリデーション、初期値の設定など忘れやすいので気をつける!
→inputタグではvalue属性の値が初期設定になるので、""の中に<%=@user.name%>を埋め込む

📖ユーザーの編集機能を作る
→保存成功時はリダイレクト、失敗時はrender

【Ruby on Rails Ⅶ】

📖publicフォルダ内に画像を保存する
→ファイル名を保存するカラムを追加
🌟$rails g migration add_カラム名_to_テーブル名
→マイグレーションファイルのみを作成
※usersテーブルはもう用意されているから

📖マイグレーションファイルの中のchangeメソッドの中に変更内容を書く
🌟add_column:テーブル名,:カラム名,:データ型
カラムを追加した後にrails db:migrateでデータベースに変更を反映させるのを忘れない!

📖新規登録時にデフォルトの画像をimage_nameカラムの値に設定
→image_name:"ファイル名"
🌟<img src="<%="/user_images/#{@user.image_name}"%>">
→画像表示させる
※public以下から表記する
📖画像選択ボタン
→<input name="image" type="file">
📖画像の送信は特殊なのでフォームタグに
{multipart:true}を追加する
→URLのあとコンマで区切って付け加える

※以下の処理は画像が存在する時のみ行う
📖ファイル名をデータベースに保存するため、updateアクション内で@user.image_name="#{@user.id}.jpg"
とする
→画像を受け取るには、
image=params[:image]とすれば送信されたファイルの情報が入る
🌟File.binwrite("public以下のファイルの場所",image.read)
→ファイルの保存


この記事が気に入ったらサポートをしてみませんか?