Перенаправить маршрут с параметрами? - PullRequest
0 голосов
/ 17 октября 2019

Я хотел бы перенаправить к соответствующему пользователю ресурса, когда пользователь хочет перейти в свой профиль.

Примерно так:

get 'profile', to: redirect ("/ users /# {current_user.id} ")

Я не знаю, возможно ли это

Ответы [ 3 ]

1 голос
/ 17 октября 2019

Перенаправление пользователя на URL-адрес, например /users/#{ current_user.id }, для его страницы профиля не рекомендуется. Это может быть IDOR , если у вас нет авторизации пользователя в этой конечной точке (т. Е. Проверяется, предназначен ли идентификатор пользователя в URL только для текущего пользователя)

Сказав это, выможно попробовать ответ @ abhishek для обработки действия шоу

1 голос
/ 17 октября 2019

ОК, после подтверждения вашего намерения, поскольку у вас уже есть контроллер пользователей, и вы уже внедрили «users # show», которое позволяет пользователям просматривать профиль другого пользователя. Я думаю, вы можете сделать это так:

  1. маршрутизатор
  get '/profile', to:"users#profile"
определяет действие профиля в вашем контроллере пользователей, здесь есть две возможные реализации (если вы уже установили текущую учетную запись пользователя в переменную current_user)

a) не перенаправлять, просто визуализируйте действие showс необходимыми переменными

def profile
  @user = current_user
  render :action => "show" # if your show function is only depends on @user variable
end

б) перенаправление

def profile
  redirect_to action: "show", id: current_user.id
end
1 голос
/ 17 октября 2019

Сделайте ваши маршруты

match 'profile' => 'users#show', :via => :get

в вашем шоу-действии

@user = current_user

это поможет создать страницу профиля пользователя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...