传递link_to的变量ID时遇到此错误。我无法在下一页(blog_details.html.erb)中读取变量
错误:
ActiveRecord::RecordNotFound in HomeController#blog_details
Couldn't find Post without an ID
我的家庭控制器:
class HomeController < ApplicationController
def blog
@posts = Post.all
end
def blog_details
@post = Post.find(params[:id])
end
end
我与变量的链接:
<div class="post-title">
<h2 class="title">
<%= link_to (post.titulo), :controller => 'home',
:action => 'blog_details', :post_id => post.id %>
</h2>
</div>
有人可以帮我解决这个错误吗?
答案 0 :(得分:1)
应该如下:
def blog_details
@post = Post.find(params[:post_id])
end
或
<%= link_to (post.titulo), :controller => 'home',
:action => 'blog_details', :id => post.id %>
答案 1 :(得分:1)
问题在于您正在寻找params[:id]
但是要传递:post_id
。因此,要么寻找params[:post_id]
,要么传入:id => post.id
答案 2 :(得分:1)
你传递了post_id而不是id:
这应该有效:
<div class="post-title">
<h2 class="title">
<%= link_to (post.titulo), :controller => 'home',
:action => 'blog_details', :id => post.id %>
</h2>
</div>
考虑使用命名路由或资源,因此您可以使用以下内容结束:
<%= link_to post.titulo, post %>
答案 3 :(得分:0)
家的路径是什么#blog_details?..您可以通过以下方式执行以下操作:
<%= link_to (post.titulo), blog_details_path(post) %>