В проекте rails 5.1.6 с BS4 и с использованием Devise я пытаюсь решить следующую проблему.
Я пытаюсь отобразить имя пользователя, которому принадлежит проект, на домашней странице. Это не работает. Возвращает ошибку имени: неопределенная локальная переменная или метод `user '
Контроллеры следующие:
Контроллер проекта:
def create
@project = current_user.projects.build(project_params)
end
Контроллер домашней страницы показывает следующее:
def home
@projects = Project.where(publish: true).limit(8)
end
Если я пытаюсь добавить на страницы контроллер
@users = User.find (params [: user_id])
Это не работает. (Запись не найдена / Не удалось найти пользователя с «id» =)
(усеченное) представление выглядит следующим образом:
<div class="card-row border-top d-flex">
<div class="card2-post__author d-flex">
<img class="card2-project-author-avatar"
<%= image_tag avatar_url(@user), class: "avatar-small" %></img>
<div class="d-flex flex-column justify-content-center ml-3">
<span class="card2-project-author-name"><%= user.fullname %></span>
</div>
</div>
Это представление с частичным отображением в двух случаях:
а) под панелью пользователя с:
<%= render partial: "projects/projects_list", locals: {user: current_user, projects: @projects} %>
контроллер для пользователя показывает:
def show
@user = User.find(params[:id])
@projects = @user.projects
end
Это работает.
б) второй
<%= render partial: "projects/projects_list", locals: {user: current_user, projects: @projects} %>
Этот не работает, что бы я ни пытался. Я чувствую, где искать, но я, кажется, застрял без идей и был бы признателен за помощь, которая укажет мне на решение или методологию для решения этой проблемы.
Заранее спасибо.