在我发现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
?
答案 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元素末尾的百分号。不确定这是否会引起你的问题,或者说我的字面意思太过分了......