我正在构建一个具有论坛功能的基本网站。我正在尝试在PostController#Show中实现一个功能,该功能将显示与该帖子相关的每个评论。但是,我不断发现错误,无法找到没有ID的______。这就是我所拥有的:
class PostsController < ApplicationController
def show
@topic = Topic.find(params[:topic_id])
@post = Post.find(params[:id])
@comments = Comment.find(params[:post_id])
end
我为@comments尝试了多种变体,但发生了类似的错误。
<h1><%= markdown_to_html @post.title %></h1>
<div class="row">
<div class="col-md-8">
<small>
<%= image_tag(@post.user.avatar.tiny.url) if @post.user.avatar? %>
submitted <%= time_ago_in_words(@post.created_at) %> age by
<%= @post.user.name %>
</small>
<p><%= markdown_to_html( @post.body) %></p>
<p><%= markdown_to_html( @comments ) %></p>
</div
<div class="col-md-4">
<% if policy(@post).edit? %>
<%= link_to "Edit", edit_topic_post_path(@topic, @post), class: 'btn btn-success' %>
<% end %>
</div>
</div>
Rails.application.routes.draw do
devise_for :users
resources :users, only: [:update]
resources :topics do
resources :posts, except: [:index] do
resources :comments, only: [:create]
end
end
get 'about' => 'welcome#about'
get 'contact' => 'welcome#contact'
root to: 'welcome#index'
end
我认为这与在主题内的帖子中嵌套注释而不使用正确的语法有关。有人能指出我正确的方向吗?
谢谢,
马特
答案 0 :(得分:1)
你不能这样做,在你看来:
@post.comments.each do |comment|
或者在您的控制器中:
@comments = @post.comments
我假设您已建立关联。