9

在遵循我找到的教程之后。我现在重做一遍,没有脚手架部分,以更好地学习它。

但是,编辑我的 \app\views\home\index.html.erb 以包含:

<h1>Rails test project</h1>
<%= link_to "my blog", posts_path>

我收到一个错误:

undefined local variable or method `posts_path' for #<ActionView::Base:0x4e1d954>

在我这样做之前,我运行rake db:create,定义了一个迁移类并运行rake db:migrate,一切都没有问题。

所以数据库应该包含一个posts表。但是该link_to命令似乎找不到posts_path。该变量(或者它甚至是一个函数?)可能是通过脚手架例程定义的。

我现在的问题是;我如何自己手动完成,定义posts_path

4

3 回答 3

21

您将需要定义您的帖子的路径config/routes.rb

Rails 2.x 语法:

map.resources :posts

Rails 3.x 语法:

resources :posts
于 2009-02-13T13:40:59.497 回答
5

_path 方法通常是动态生成的。当没有指定对象的路由或在这种情况下您显式调用的方法时,会出现方法丢失错误。

定义路线应该可以解决这个问题。上面的 HermanD 展示了一种方法来做到这一点。

您可以从 Rails 应用程序的根目录运行“rake routes”以查看所有已配置的路由

于 2009-02-13T22:01:45.550 回答
5

<%= link_to "我的博客", posts_path>

如果这正是您的 erb 所包含的内容,那么它缺少 scriptlet 元素末尾的百分号。不知道这是否导致了你的问题,或者我可能太从字面上理解了......

于 2010-06-06T07:36:59.317 回答