无法找到带有' id' =的帖子

时间:2017-01-22 02:26:33

标签: ruby-on-rails ruby

我尝试链接到一个页面,该页面会显示每个帖子的热门回复,但是当我设置好所有内容并点击link_to按钮时,我收到错误消息:

  

ActiveRecord :: RecordNotFound(无法找到带有' id' =的帖子):

我的意见中有这个:

select sum(points)
from t
where player in ('A', 'C');

我设置了我的/ top路线以显示热门回复页面:

  <% if @post.user == current_user && @post.responses.where(top: true).size >= 1 %>
      <a href="#" class="btt"><%= link_to "finalize top", '/top' %>Finalize Top</a>

我知道Rails并不知道我指的是哪个帖子,但我不确定视图,路由或响应控制器中需要更改的内容。

我在响应控制器中也有这个,我认为这会有所帮助但是没有:

get '/top' => 'responses#top'

非常感谢任何帮助!这是我第一次发布,并且是Ruby on Rails和编程的新手。

以下是终端的完整错误:

def top
  @post = Post.find(params[:post_id])
end

2 个答案:

答案 0 :(得分:0)

我会尝试:

def top
  @post = Post.find(params[:id])
end

答案 1 :(得分:0)

首先link_to<a>类似,因此在您看来,您应该将link_to置于<a>内,就像将<a>置于另一个<a><% if @post.user == current_user && @post.responses.where(top: true).size >= 1 %> <%= link_to "finalize top", { controller: :responses, action: :top, id: @post.id },{ class: 'btn btn-default'} %> 1}}。 在你看来:

def top
  @post = Post.find(params[:id])
end

在您的控制器中:

get '/top' => 'responses#top'

在routes.rb

{{1}}