没有ID就找不到评论

时间:2015-03-09 23:13:53

标签: ruby-on-rails routing

我正在构建一个具有论坛功能的基本网站。我正在尝试在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

我认为这与在主题内的帖子中嵌套注释而不使用正确的语法有关。有人能指出我正确的方向吗?

谢谢,

马特

1 个答案:

答案 0 :(得分:1)

你不能这样做,在你看来:

@post.comments.each do |comment|

或者在您的控制器中:

@comments = @post.comments

我假设您已建立关联。