2013-03-03 87 views
0

傳遞link_to的變量ID時出現此錯誤。我無法讀取該變量在接下來的頁面(blog_details.html.erb)無法通過鏈接傳遞ID

錯誤:

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> 

有人可以幫我解決這個錯誤嗎?

回答

1

應該象下面這樣:

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

<%= link_to (post.titulo), :controller => 'home', 
     :action => 'blog_details', :id => post.id %> 
+0

謝謝你。工作 – user1211674 2013-03-03 18:47:59

1

的問題是,你正在尋找params[:id]但傳遞:post_id。因此,要麼尋找params[:post_id],或通過在:id => post.id

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 %>

+0

@Downvoter:爲什麼? – Intrepidd 2013-03-03 18:33:21

+0

謝謝你。工作 – user1211674 2013-03-03 18:48:29

0

的路徑是什麼回家#blog_details ..與路徑喲?你可以這樣做:

<%= link_to (post.titulo), blog_details_path(post) %>