2015-12-01 1 views
0

У меня есть связь между пользователями и сообщениями, где сообщение принадлежит пользователю, а пользователь имеет много сообщений. При просмотре вид после шоу пост визуализируется с URLПопытка связаться со страницей users.show с posts.show и cant find user id

http://localhost:3000/posts/21

и когда я нажимаю = 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 
+1

Это не должно быть 'user_path (@ пользователь) '? –

+1

это должно быть 'link_to @ post.user.name, user_path (@ post.user)' –

+0

О да, '@ post.user'. Виноват. –

ответ

0

я пропускал (@post.user) на конце

= link_to @post.user.name, user_path

так

link_to @post.user.name, user_path(@post.user)

сосредоточил свой вопрос

Смежные вопросы