的ActiveRecord :: RecordNotFound

时间:2014-02-20 05:11:45

标签: ruby-on-rails activerecord

我的第一个关于ruby on rails的项目。我收到此错误enter image description here

我的print.html.erb是一个静态页面。它有一个链接<a href="posts/index">Show</a>

在我的情况下,打印页面是索引页面,即localhost:3000打开打印页面。

这是我的index.html.erb页面(这是链接页面)

<h1>Listing posts</h1>

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

这是我的控制器

class PostsController < ApplicationController
def index
  @posts = Post.all
end

 def new
  end

def create
  @post = Post.new(post_params)
  @post.save
  redirect_to @post
end

  def post_params
    params.require(:post).permit(:title, :text)
  end

def show
  @post = Post.find(params[:id])
end

def print
end

end

这是我的路线档案

Watermark::Application.routes.draw do
resources :posts
  root "posts#print"

  post 'posts/index' => 'posts#index'
  post ':controller(/:action(/:id(.:format)))'
  get ':controller(/:action(/:id(.:format)))'
end

我猜问题出在路径文件中。

1 个答案:

答案 0 :(得分:1)

您的路线包含一些虚假添加物。你不应该添加

post 'posts/index' => 'posts#index'

这只会与现有路线发生冲突。你应该删除它。

resources :posts是您生成seven default RESTful routes in Rails所需的全部内容,包括index,只需/posts,而不是/posts/index

你还应该删除两条全能路线,它们不再有用了。你似乎很可能是在一个过时的教程中工作。