Is a directory @ rb_sysopen というエラー文が出る Rails5
Progateのrailsのコースを見ながらアプリを作っています。今プロフィール画像をアップロードしたくてつまづいております。コードはProgateのものをそのまま持ってきてるのですがどうもうまくいきません。
エラー文も今までに見たことないもので調べてもよくわからないです。ここだけで半日以上止まってしまっています。
やりたいことは
画像をpublic/user_imagesに保存
保存された画像をプロフィールページに表示する(ユーザーごとに画像は変更できる)
です。
どうかご教授くださいませ。
home_controller.rb
def update_user
@user = User.find_by(id: params[:id])
@user.name = params[:name]
@user.email = params[:email]
if params[:image]
@user.image_name = "#{@user.id}.jpg"
image = params[:image]
File.binwrite("public/user_images/#{@user.image_name}",image.read)
end
if @user.save
flash[:notice] = "ユーザー情報を編集しました"
redirect_to("/")
end
end
def profile
@user = User.find_by(id: params[:id])
@post = Post.find_by(id: params[:id])
@likes = Like.where(user_id: @user.id)
end
routes.rb
Rails.application.routes.draw do
get "home/test" => "home#barbajs"
get ":id/edit_profile" => "home#edit_profile"
get "account/:id/edit" => "home#edit_account"
post "user/:id/update" => "home#update_user"
get 'pay/payment'
devise_for :users
get "home/:id/likes" => "home#likes"
post "likes/:post_id/create" => "likes#create"
post "likes/:post_id/destroy" => "likes#destroy"
root 'home#index'
get "home/new_fc" => "home#new_fc"
post "home/create" => "home#create"
get "home/profile/:id" => "home#profile"
get ":id/show_fc" => "home#show_fc"
get ":id/edit_fc" => "home#edit_fc"
post ":id/update_fc" => "home#update_fc"
post ":id/fc/destroy" => "home#destroy"
get ":id/setting" => "home#setting"
get "pay" => "pay#payment"
get "home/new_fc_content" => "home#new_fc_content"
post "home/content_create" => "home#content_create"
end
edit_profile.html.erb(プロフィール編集ページ)
<h3>プロフィール編集</h3>
<%= form_tag("/user/#{current_user.id}/update", {multipart: true}) do %>
<p>ユーザー名</p>
<textarea name="name" class="textbox"><%= current_user.name %></textarea>
<li>自己紹介変更</li>
<li>プロフィール写真変更</li>
<p>画像</p>
<input name="image" type="file">
<input type="submit" value="これで完成!" class="btn btn-light-green btn-size-large">
<% end %>
profile.html.erb(プロフィールページ)
<div class="main">
<h2><%= @user.name %></h2>
<img src="<%= "/user_images/#{@user.image_name}" %>">
<table>
<tr>
<th>ファンクラブ総会員数</th>
<th>入会ファンクラブ数</th>
</tr>
<tr>
<td>11</td>
<td>20</td>
</tr>
</table>