2013-07-04 144 views
0

我一直在試圖讀取的軌道從外部路由並慘遭失敗議題和問題。我相信我想要做的事很基本,但無論出於何種原因我都無法弄清楚。這是情況。Rails的路由

我想我的網址閱讀www.example.com/maps,而不是他們現在在做什麼www.example.com/maps/map這是控制器然後查看名稱。

我的路線如下所示。

homepages GET /homepages(.:format)     homepages#index 
       POST /homepages(.:format)     homepages#create 
new_homepage GET /homepages/new(.:format)    homepages#new 
edit_homepage GET /homepages/:id/edit(.:format)   homepages#edit 
    homepage GET /homepages/:id(.:format)    homepages#show 
       PUT /homepages/:id(.:format)    homepages#update 
       DELETE /homepages/:id(.:format)    homepages#destroy 
     root  /         homepages#index 
     maps GET /maps(.:format)      maps#index 
       POST /maps(.:format)      maps#create 
     new_map GET /maps/new(.:format)     maps#new 
    edit_map GET /maps/:id/edit(.:format)    maps#edit 
      map GET /maps/:id(.:format)     maps#show 
       PUT /maps/:id(.:format)     maps#update 
       DELETE /maps/:id(.:format)     maps#destroy 
    work_index GET /work(.:format)      work#index 
       POST /work(.:format)      work#create 
    new_work GET /work/new(.:format)     work#new 
    edit_work GET /work/:id/edit(.:format)    work#edit 
     work GET /work/:id(.:format)     work#show 
       PUT /work/:id(.:format)     work#update 
       DELETE /work/:id(.:format)     work#destroy 
contact_index GET /contact(.:format)      contact#index 

我試圖做類似的資源:地圖:PATH =>「」,但是當我訪問我的網站的網址出現了同樣的。這是由於我的觀點代碼看起來像

<li class="current_page_item"><%= link_to "Bio", :controller => :homepages, :action => :index %></li> 
       <li><%= link_to "Work", :controller => :work, :action => :experience %></li> 
       <li><%= link_to "Map", :controller => :maps, :action => :map %></li> 
       <li><%= link_to "Contact", :controller => :contact, :action => :email %></li> 

或者是因爲我的路線是錯誤的?

我的路線文件現在看起來像

Me::Application.routes.draw do 
    resources :homepages 
    root :to => 'homepages#index' 

    resources :maps 

    resources :work 

    resources :contact 

    resources :media 

感謝您的幫助!

+0

2個語句:1 )爲什麼不使用'_url'或'_path'輔助方法來生成鏈接? 2)你正在鏈接到諸如'map'和'experience'之類的行爲,這些行爲在你的路線中沒有定義。 –

+0

謝謝!不知道那些幫手。我不完全確定那裏的地圖和體驗如何保持誠實。看來我有地圖和地圖? – DynastySS

回答

1

在我看來,你應該讀一點,但有關路由及其部分在Rails的宏偉計劃中

您可以從這裏開始 http://guides.rubyonrails.org/routing.html

您也可以看一些RailCast爲了全面掌握線路 的意義這是一個有點棘手,但是當你瞭解它,它完全意義

如果你想在「地圖」的鏈接去到特定地圖,你應該改變

<%= link_to "Map", :controller => :maps, :action => :map %> 

<%= link_to "Map", @map %> 

哪裏@map是地圖,你初始的變量lized控制器

如果你想在「地圖」鏈接,進入地圖索引頁面,並顯示所有的地圖,你應該改變

<%= link_to "Map", :controller => :maps, :action => :map %> 

<%= link_to "Map", maps_path %> 
+0

謝謝!當我更改爲<%= link_to「地圖」時,maps_path%>我看到我的網址按我想要的方式工作。唯一的問題是我正在獲取未初始化的常量MapsController :: Map。我不完全確定爲什麼,或者... – DynastySS

+0

1.您是否在MapsController中定義了一個索引方法?在這種方法中,你應該選擇你想要在索引視圖中顯示的所有地圖 - 例如把它放在一個名爲'@maps'的變量中2.你應該在views \ maps文件夾下定義index.html.erb視圖文件並且與這個'@maps'變量相關 – obenda

0

嗯,這是多麼的REST資源和URL的定義。閱讀here

做你routes.rb文件中的以下時間:

resource :maps 

你告訴軌生成缺省路由爲您提供以下操作:

  • 指數=>GET /maps
  • show =>GET /maps/1
  • new =>GET /maps/new
  • 創建=>POST /maps
  • 編輯=>GET /maps/1
  • 更新=>PUT /maps/1
  • 破壞=>DELETE /maps/1