2011-03-29 95 views
0

我幾乎沒有得到我的Ruby on Rails環境工作,我走過去並獲取了我的Hello World應用,並添加了另一種方法,它沒有路由匹配。第一個ROR控制器 - 沒有路由匹配

我創建了一個叫做say_hello_controller.rb的控制器,裏面有這個代碼。

class SayHelloController < ApplicationController 
    def index 
    render :text => "Hello World" 
    end 

    def bye 
    render :text => "bye bye" 
    end 
end 

這是錯誤http://screencast.com/t/h3ke1hjg8

奇怪的是,http://localhost:3000/say_hello/index確實有效。

我錯過了什麼?

回答

0

你的config/routes.rb中沒有say_hello的記錄/再見

您希望添加:

match 'say_hello/bye' => 'say_hello#bye' 

不過,我建議您閱讀http://guides.rubyonrails.org/routing.html#resource-routing-the-rails-default獲得航線上/資源的把握。

+0

好吧,這是正確的。它現在有效。我將不得不在這裏閱讀指南以更多地理解它。我認爲重點在於讓這個慣例自動化,讓生活更輕鬆,不需要配置一堆東西,把路由放在配置文件中似乎有點違背ror方式:) – CacheMan 2011-03-29 03:43:47

+0

重點不在配置中放置路由 - 關鍵是你不使用標準路線。您可以打開「通配符」路由,這意味着您定義的每個操作都是可找到的,但這不是RESTful。默認情況下,rails路徑爲:index,show,new,create,edit,update和delete。對於大多數你會做的事情來說,這7個應該是足夠的,偶爾添加一條自定義路線很容易。 – Andrew 2011-03-29 05:22:04