ポートフォリオ作成中のrails初学者です。
ユーザーの編集の際、編集前の情報を表示、残しておきたいです。
ユーザーの編集をクリックすると編集前の情報が空白になってしまいます。
def edit @user = User.find_by(id: params[:id]) end
users_controller.rb
class UsersController < ApplicationController def index @users = User.all end def show @user = User.find_by(id: params[:id]) end def new @user = User.new end def create @user = User.new(name: params[:name], email: params[:email]) if @user.save flash[:notice] = "ユーザー登録が完了しました" redirect_to("/users/#{@user.id}") else render('users/new') end end 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] # アドレスを上書きする if @user.save flash[:notice] = 'ユーザー情報を編集しました' redirect_to("/users/#{@user.id}/") else render('/users/edit') end end end
edit.html.erb
<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") do %> <p>お名前</p> <input name="name" value="<%@user.name%>"> <p>メールアドレス</p> <input name="email" value="<%@user.email%>"> <input type="submit" value="保存"> <%end%> </div> </div> </div> </div>
どなたか回答よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/11 06:29