PostsController#show中的ActiveRecord :: RecordNotFound

时间:2014-03-20 06:10:00

标签: ruby-on-rails-4

我收到上述错误当我访问http://127.0.0.1:3000/posts/show网址时,它会给我错误

Couldn't find Post with id=show
Extracted source (around line #5) 

def show
@post = Post.find(params[:id])--here is line number 5
end
def create
@post = Post.new(post_params)

activerecord (4.0.3) lib/active_record/relation/finder_methods.rb:198:in `raise_record_not_found_exception!'
当我访问网址http://127.0.0.1:3000/posts/index...

时,

同样的问题

my controller file is

posts_controller.rb

class PostsController < ApplicationController
  def new
end
def show
  @post = Post.find(params[:id])
end
  def create
  @post = Post.new(post_params)

  @post.save
  redirect_to @post
  # or this command also works redirect_to action: :show, id: @post.id
end

def index
  @posts = Post.all
end
private
  def post_params
    params.require(:post).permit(:title, :text)
  end

end

my routes.rb file is
Blog::Application.routes.draw do
  resources :posts
  root to: "posts#index"
end

index.html.rb文件是

<h1>Listing posts</h1>
 <h3><%= link_to 'New post', new_post_path %></h3>
<table>
  <tr>
    <th>Title</th>
    <th>Text</th>
  </tr>

  <% @posts.each do |post| %>
    <tr>
      <td><%= post.title %></td>
      <td><%= post.text %></td>
    </tr>
  <% end %>
</table>
<h1>Hello,Rails</h1>
<%=link_to "My Blog",controller: "posts"%>

show.html.rb文件是

这是从数据库中列出信息的show file,这个文件在从url直接访问时出现问题这是从数据库中列出信息的show file,这个文件在从url直接访问时出现问题这是显示文件列表信息从数据库,这个文件直接从url访问时出现问题这是从数据库中列出信息的show file,这个文件在从url直接访问时出现问题这是从数据库中列出信息的show file,这个文件在访问时给出了问题来自网址直接

<p>
  <strong>Title:</strong>
  <%= @post.title  %>
</p>

<p>
  <strong>Text:</strong>
  <%= @post.text %>
</p>
<%= link_to 'Back', posts_path %>

这是从数据库列出信息的show file,这个文件在从url直接访问时出现问题这是从数据库中列出信息的show file,这个文件直接从url访问时出现问题

1 个答案:

答案 0 :(得分:1)

您需要提供身份证明。找不到记录,因为您正在提供&#34; show&#34;作为身份证。 http://ruby.railstutorial.org/chapters/sign-up#code-user_show_action

示例:访问posts / 1而不是posts / show