2010-07-28 22 views
0
錯誤

我在Ruby on Rails的工作..我是新來的..的link_to「大約」,about_path顯示ROR

我用一條線

<%= link_to "about",about_path %> 

    which throws me a error as, 

    undefined local variable or method `about_path' for #<ActionView::Base:0xb5f5baa8> 

我遇到的page about.html app/views/pages/

請給我一些建議,說明我爲什麼這樣做。

回答

3

你的代碼正在尋找叫做命名路由的東西。您需要在config/routes.rb中定義這些。此外,您需要一些控制器和操作來處理它們。看到這個post描述了一個非常簡單的方式來處理靜態頁面的方式。

要獲得about_path命名的路線,然後你想補充一點,以routes.rb

map.about "/pages/about", :controller => "pages", :action => "show", :id => "about" 

添加您的有關網頁內容到一個名爲app/views/pages/about.html.erb

最後文件:

$ rake routes 

告訴你爲你的應用程序定義的所有命名路線以及它們做什麼

+0

@約翰Topley。感謝您修復這些錯別字 – bjg 2010-07-28 11:52:22

1

是否在你的routes.rb類似map.resources:about?

如果您不知道爲什麼它應該在那裏或什麼是,請閱讀guides上的RESTful Routing。

+1

這隻有你有一個叫做「約」的模型纔有意義。他只是想路由一個靜態頁面... – auralbee 2010-07-28 11:51:22

2

我想你的關於頁面是「靜態的」。檢查這個..

的routes.rb

# rails 2.3.x 
map.about "/pages", :controller => 'pages', :action => 'about' 

控制器/ pages_controller.rb

class PagesController < ApplicationController 
    def about # not needed, only for "tidiness" 

    end 
end 

...和你再培訓局的文件都在這裏:瀏覽次數\ \頁about.html。 erb

5

我剛剛使用Hartl的教程也遇到同樣的問題。這是我做的。

當問rake routes,我有:

tomsihap-MBP:sample_app tomsihap$ rake routes 
       Prefix Verb URI Pattern      Controller#Action 
       root GET/        static_pages#home 
    static_pages_help GET /static_pages/help(.:format) static_pages#help 
    static_pages_about GET /static_pages/about(.:format) static_pages#about 
static_pages_contact GET /static_pages/contact(.:format) static_pages#contact 

然後正確的路徑是:

<%= link_to "About", static_pages_about_path %> 

而且不<%= link_to "About", about_path %>通過哈特爾指南的建議。

編輯:

好吧,現在我明白了。這是因爲線路被定義這樣的:

Rails.application.routes.draw do 
root 'static_pages#home' 
get 'static_pages/help' 
get 'static_pages/about' 
get 'static_pages/contact' 

相反的,後來解釋到教程:

Rails.application.routes.draw do 
root 'static_pages#home' 
get 'help' => 'static_pages#help' 
get 'about' => 'static_pages#about' 
get 'contact' => 'static_pages#contact' 

使用這種方式,正確的路徑現在是:

<%= link_to "About", about_path %> 
+1

Prefect。這工作:) – mrateb 2018-02-24 13:46:51