Ruby on rails link_to syntax

自古美人都是妖i 提交于 2019-12-23 07:41:02

问题


After following a tutorial Ive found. Im now redoing it again, without the scaffolding part, to learn it better.

However, editing my \app\views\home\index.html.erb to contain:

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

I get an error:

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

Before I did this, I ran rake db:create, defined a migration class and ran rake db:migrate, everything without a problem.

So the database should contain a posts table. But that link_to command cant seem to find posts_path. That variable (or is it even a function?) is probably defined through the scaffold routine.

My question now is; how do I do that manually myself, define posts_path?


回答1:


You will need to define a path to your posts in config/routes.rb

Rails 2.x syntax:

map.resources :posts

Rails 3.x syntax:

resources :posts



回答2:


The _path methods are dynamically generated typically. The method missing error comes about when there isn't a route to the object specified or in this case the method you're calling explicitly.

Defining a route should fix this. HermanD above showed one way to do this.

You can run 'rake routes' from the root of your rails app to see all the routes that are configured




回答3:


<%= link_to "my blog", posts_path>

If this is exactly what your erb contained, it's missing the percent sign at the end of the scriptlet element. Not sure if that caused your problem, or maybe I'm taking things too literally....



来源:https://stackoverflow.com/questions/545951/ruby-on-rails-link-to-syntax

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!