Ruby on rails link_to语法

Miz*_*zor 9 ruby-on-rails scaffolding link-to

按照我发现的教程后.我现在再次重做它,没有脚手架部分,更好地学习它.

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

<h1>Rails test project</h1>
<%= link_to "my blog", posts_path>
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

undefined local variable or method `posts_path' for #<ActionView::Base:0x4e1d954>
Run Code Online (Sandbox Code Playgroud)

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

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

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

Dan*_*man 21

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

Rails 2.x语法:

map.resources :posts
Run Code Online (Sandbox Code Playgroud)

Rails 3.x语法:

resources :posts
Run Code Online (Sandbox Code Playgroud)


Kev*_*vis 5

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

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

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


小智 5

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

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