无法通过链接传递ID

时间:2013-03-03 18:23:39

标签: ruby-on-rails ruby variables

传递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>

有人可以帮我解决这个错误吗?

4 个答案:

答案 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) %>