ruby on rails - профильная страница пользователя с устройством - маршрутизация для отображения профильной страницы - PullRequest
0 голосов
/ 28 сентября 2018

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

Вот ошибка:

No route matches {:action=>"show", :controller=>"user"}, missing required keys: [:id]

А это мой код: маршруты

get 'user/show/:id', to: 'user#show', as: 'profil'
devise_for :users
 root 'home#index'
resources :users

Контроллер пользователя:

def show
    @user = User.find(params[:id])
end

Приложение.html, куда я вставляю ссылку, вызывающую сбой моего приложения

<%= link_to 'profil', profil_path , class: "dropdown-item" %> 

Заранее спасибо.

1 Ответ

0 голосов
/ 28 сентября 2018

Изменение маршрута: -

root 'home#index'
devise_for :users
resources :users, except: [:show]
get 'user/show/:id', to: 'users#show', as: 'profil'

пропущены необходимые ключи: [: id]

Что означает, что в маршруте для users#show вам необходимо передать идентификатор paramsкак идентификатор пользователя

Devise имеет current_user, который является зарегистрированным пользовательским объектом, поэтому в раскрывающемся списке application.htm Сделать динамический профиль, скажем, если пользователь вошел в систему

<%if current_user.present?%>
   <%= link_to 'profil', profil_path(id: current_user.id) , class: "dropdown-item" %>
<%end%>

Пользовательский контроллер

class UsersController < ApplicationController
  before_action :authenticate_user!
  def show
   @user = User.find(params[:id])
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...