友好的なURLを組み込んだ後、私のedit_user
パスはusers#edit
アクションにルーティングされません。 edit_user_path
ヘルパーのレンダリングされたURLが正しいです。リンクをクリックするたびに、最初に正しいURLに移動してから、root
アクションをリダイレクトします。Rails edit_userルートが機能しない
ルート:edit_user_path GET /users/:id/edit(.:format) users#edit
リンクERB:<%= link_to 'Edit Account', edit_user_path(@user), class: 'button' %>
レンダリングされたHTML:http://localhost:3000/users/plopp/edit
コントローラー:
class UsersController < ApplicationController
before_action :require_signin, except: [:new, :create]
before_action :require_correct_user, only: [:edit, :update, :destroy]
def index
@users = User.all
end
def show
@user = User.find_by!(username: params[:id])
@reviews = @user.reviews
@favorite_movies = @user.favorite_movies
end
def edit
end
def update
if @user.update(user_params)
redirect_to @user, notice: "Account successfully updated."
else
render :edit
end
end
end
private
def user_params
params.require(:user).
permit(:name, :email, :username, :password, :password_confirmation)
end
def require_correct_user
User.find_by!(username: params[:id])
unless current_user?(@user)
redirect_to root_url
end
end
それはトリックでした。このようなバグを見つけるたびに、時間をかけすぎて追い詰めようとすると、そのような明白な監視に終わります。もっと経験を積むにつれて、より良くなることを願っています。 –