2009-02-13 139 views
9

之後找到了tutorial。我現在再次重做,沒有腳手架部分,以更好地學習它。Ruby on rails link_to語法

然而,我的編輯\ APP \意見\家\ 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,一切都沒有問題。

所以數據庫應該包含一個帖子表。但那link_to命令似乎找不到posts_path。該變量(或甚至是一個函數?)可能是通過腳手架例程定義的。

我現在的問題是;我該如何自己手動做,定義posts_path

回答

21

您將需要config/routes.rb

的Rails 2.x的語法來定義自己的帖子路徑:

map.resources :posts 

的Rails 3.x的語法:

resources :posts 
+0

Works。比較使用腳手架的項目中的routes.rb文件和當前的腳本。那條線是唯一缺少的東西。添加後,索引頁面按預期工作。 – Mizipzor 2009-02-13 13:45:52

5

的_path方法通常動態生成。缺少錯誤的方法出現在沒有到指定對象的路由時,或者在這種情況下顯式調用的方法。

定義路線應該解決這個問題。上面的HermanD顯示了一種方法來做到這一點。

您可以從您的Rails應用程序的根「耙路線」看到配置

5

<%=的link_to「我的博客」的所有路線,posts_path>

如果這是正是你的erb包含的內容,它缺少scriptlet元素末尾的百分號。不知道這是否會導致您的問題,或者我可能會從字面上理解......