0

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

4 に答える 4

1

問題は、探しているparams[:id]のに を渡していることです:post_id。したがって、を探すかparams[:post_id]、または渡します:id => post.id

于 2013-03-03T18:27:00.100 に答える
1

id の代わりに post_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 %>

于 2013-03-03T18:27:04.560 に答える
1

以下のようになります。

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

また

<%= link_to (post.titulo), :controller => 'home', 
      :action => 'blog_details', :id => post.id %>
于 2013-03-03T18:25:56.973 に答える
0

home#blog_details へのパスは何ですか?.パスを使用すると、次のようなことができます。

<%= link_to (post.titulo),  blog_details_path(post) %>
于 2013-03-03T18:28:05.013 に答える