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)
_path方法通常是动态生成的.如果没有指向对象的路径,或者在这种情况下显式调用的方法,则会出现丢失错误的方法.
定义路线应该解决这个问题.上面的HermanD显示了一种方法.
您可以从rails应用程序的根目录运行"rake routes"以查看配置的所有路由
小智 5
<%= link_to"我的博客",posts_path>
如果这正是你的erb所包含的内容,那么它将缺少scriptlet元素末尾的百分号.不确定这是否会导致你的问题,或者我可能太过于字面意思......