我的第一个关于ruby on rails的项目。我收到此错误
我的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
我猜问题出在路径文件中。
答案 0 :(得分:1)
您的路线包含一些虚假添加物。你不应该添加
post 'posts/index' => 'posts#index'
这只会与现有路线发生冲突。你应该删除它。
resources :posts
是您生成seven default RESTful routes in Rails所需的全部内容,包括index
,只需/posts
,而不是/posts/index
。
你还应该删除两条全能路线,它们不再有用了。你似乎很可能是在一个过时的教程中工作。