Ruby on rails link_to语法

时间:2009-02-13 13:38:35

标签: ruby-on-rails scaffolding link-to

在我发现tutorial之后。我现在再次重做它,没有脚手架部分,更好地学习它。

但是,编辑我的\ 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

3 个答案:

答案 0 :(得分:21)

您需要在config/routes.rb

中定义帖子的路径

Rails 2.x语法:

map.resources :posts

Rails 3.x语法:

resources :posts

答案 1 :(得分:5)

_path方法通常是动态生成的。如果没有指向对象的路径,或者在这种情况下是您明确调用的方法,则会出现丢失错误的方法。

定义路线应该解决这个问题。上面的HermanD显示了一种方法。

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

答案 2 :(得分:5)

&lt;%= link_to“我的博客”,posts_path&gt;

如果这正是你的erb所包含的内容,那么它将缺少scriptlet元素末尾的百分号。不确定这是否会引起你的问题,或者说我的字面意思太过分了......