Addition of user information editing function
First, enter the following code at the terminal.
$ rails g controller users
Then enter the following in the routing.
devise_for :users root "photos#index" resources :users, only: [:edit, :update]
The meaning of resources means resources in Japanese, and I think it can be interpreted as using the editing and updating functions in users.
Then edit the controller.
def edit end def update if current_user.update(user_params) redirect_to root_path else render :edit end end private def user_params params.require(:user).permit(:name, :email) end
(1) current_user is a helper method of devise, and you can get the user information during login.
(2) redirect_to transfers to a path different from the originally received path. The above means forwarding to root_path.
③ If the above fails, render will call edit.
④ private is a private method that cannot be called from outside the class.
-Isolate methods that are in trouble if called from outside the class
-Readability, when searching for a method called from outside the class, you do not have to read the part below private.
(5) user_params The following are strong parameters that receive only parameters with the specified key.
⑥ Request user in the strong parameter to get permission for: name ,: email. Use binding.pry immediately after update to see the details.