У меня есть связь между пользователями и сообщениями, где сообщение принадлежит пользователю, а пользователь имеет много сообщений. При просмотре вид после шоу пост визуализируется с URLПопытка связаться со страницей users.show с posts.show и cant find user id
и когда я нажимаю = link_to @post.user.name
, user_path
на posts
странице я получаю url
http://localhost:3000/users/21
и error
ActiveRecord::RecordNotFound at /users/21
Couldn't find User with 'id'=21
В этом случае идентификатор пользователя, к которому я должен быть перенаправлен, должен быть /users/1
Я не могу понять, почему идентификатор изображения и идентификатор пользователя не меняются, поскольку изображение с идентификатором «id» = 21 принадлежит пользователю «id» = 1
Мои сообщения просмотреть show.html.haml
= image_tag @post.image.url (:medium)
%h1= @post.title
%p= @post.link
%p= @post.description
= link_to @post.user.name, user_path
%h2
= @post.get_upvotes.size
likes
= link_to "Like", like_post_path(@post), method: :get
%h2.comment_count= pluralize(@post.comments.count, "Comment")
- @comments.each do |comment|
.comment
%p.username= comment.user.name
%p.content= comment.content
= render 'comments/form'
= link_to "Edit", edit_post_path(@post)
= link_to "Destroy", post_path(@post), method: :delete, data: {confirm: "Are you sure?"}
= link_to "Home", root_path
и мой контроллер пользователи
class UsersController < ApplicationController
def index
@users = User.all
end
def show
@user = User.find(params[:id])
@posts = @user.posts.order("created_at DESC")
end
end
Это не должно быть 'user_path (@ пользователь) '? –
это должно быть 'link_to @ post.user.name, user_path (@ post.user)' –
О да, '@ post.user'. Виноват. –