前提・実現したいこと
プログラミングの練習としてTwitterのようなサービスを作っているのですが、ユーザー情報変更の部分で躓いてしましました。ユーザー情報を変更しようとするとエラーが発生してしまいます。
発生している問題・エラーメッセージ
undefined method `read' for "":String
上記のエラーが発生し、画像の変更の部分に問題があるのはわかっています。
該当のソースコード
#user_controller def edit @user = User.find_by(id: params[:id]) end def update @user = User.find_by(id: params[:id]) @user.name = params[:name] @user.email = params[:email] @user.profile = params[:profile] 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("/users/#{@user.id}") else render("users/edit") end end
#edit.html.erb <div class="main users-edit"> <div class="container"> <div class="form-heading">ユーザー情報の編集</div> <div class="form users-form"> <div class="form-body"> <% @user.errors.full_messages.each do |message| %> <div class="form-error"> <%= message %> </div> <% end %> <%= form_tag("/users/#{@user.id}/update", {multipart: true}) do %> <p>ユーザー名</p> <input name="name" value="<%= @user.name %>" > <p>画像</p> <input name="image" type="file" > <p>メールアドレス</p> <input name="email" value="<%= @user.email %>"> <input type="submit" value="保存"> <% end %> </div> </div> </div> </div>
試したこと
調べて見たのですが解決策が見つからなかったので質問させていただきました。
回答いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/25 10:10