我尝试链接到一个页面,该页面会显示每个帖子的热门回复,但是当我设置好所有内容并点击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
答案 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}}