2012-02-07 178 views
1

我剛開始學習RoR。這是我/app/trip_controller.rb文件路由錯誤沒有路由匹配

class TripController < ApplicationController 
layout 'main' 
def index 
end 
    def map 
    session[:location] = Location.new(params[:location]) 
     @map = GMap.new("map_div") 
     @map.control_init(:large_map => true, :map_type => true) 
     @map.icon_global_init(GIcon.new(:image => "http://www.google.com/ 
             mapfiles/ms/icons/blue-pushpin.png", 
     :shadow => "http://www.google.com/mapfiles/shadow50.png", 
     :icon_size => GSize.new(32,32), 
     :shadow_size => GSize.new(37,32), 
     :icon_anchor => GPoint.new(9,32), 
     :info_window_anchor => GPoint.new(9,2), 
     :info_shadow_anchor => GPoint.new(18,25)), 
     "icon_source") 
     icon_source = Variable.new("icon_source") 
     source = GMarker.new([session[:location].lat, 
          session[:location].long], 
     :title => 'Source', 
     :info_window => "Start here!", 
     :icon => icon_source) 
     @map.overlay_init(source) 
     @map.center_zoom_init([session[:location].lat, 
         session[:location].long], 12) 
     @location = session[:location].location 
end 

,這是我的routes.rb文件

Project::Application.routes.draw do 
end 

我/應用/視圖文件夾中有下列文件

_search.rhtml 
index.rhtml 
/layouts 
    application.html.erb main.rhtml 
/trip 
    _info.rhtml _tabs.rhtml map.rhtml 

當我啓動服務器併到達localhost:3000 /我的瀏覽器,我得到錯誤

No route matches [GET] "/trip" 

我需要在routes.rb文件中配置任何東西嗎?

回答

1

我建議通過the routing guide的旅程,這可以幫助回答大部分(如果不是所有的)Rails新手和通過路徑路由的人提出的問題。

要回答你的問題,是的,你需要配置routes.rb文件中的東西 - 這個文件是完成路由工作的核心。

2

您沒有定義路線。你的routes.rb改成這樣:

Project::Application.routes.draw do 
    get "trip" => "trip#map" 
end 

目的的路線是映射URL請求發送到您的控制器動作因爲你沒有任何路線定義你得到的路由錯誤。

檢查此guide以獲取有關路由的更多信息。

可能用來調試路由錯誤的最有用的命令是rake routes,它將輸出所有定義的路由和路徑名。

相關問題