動作
1 htmlで送られてきた画像はフォルダに登録して、画像名はDBに登録する
2 表示する時はDBから画像名を取得して、フォルダをみに行く
登録
コントローラーの書き方
ファイルの作成方法
Fileクラスのwriteメソッドを使って画像を登録
File.write(ファイルの場所, ファイルの中身)
def update
@user = User.find_by(id: params[:id])
@user.name = params[:name]
@user.email = params[:email]
@user.image_name = "#{@user.id}.jpg"
image = params[:image]
File.binwrite("public/user_images/#{@user.image_name}", image.read)
end
htmlの書き方
<%= form_tag("/users/#{@user.id}/update", {multipart: true}) do %>
<p>ユーザー名</p>
<input name="name" value="<%= @user.name %>">
<p>画像</p>
<input type="file" name="image"
<p>メールアドレス</p>
<input name="email" value="<%= @user.email %>">
<input type="submit" value="保存">
<% end %>
表示
htmlの書き方
画像を表示
# "/user_image/ スラで始まる
# Rubyのコード部分は<%= %>で囲む
<img src="<%="/user_image/#{@user.image_name}" %>">