2010-05-26 67 views
1

我創建了一個名爲「ask」的新動作。問.haml應該是在視圖/問題中。我還爲此操作添加了如何在Ruby on Rails中創建新視圖時正確設置路徑?

def asked 
    respond_to do |format| 
     format.html 
     format.xml { render :xml => @questions } 
    end 
    end 

問題控制器。

我的問題是,當我到了URL http://localhost:3000/questions/asked,我得到這個錯誤:

ActiveRecord::RecordNotFound in QuestionsController#show 

Couldn't find Question with ID=asked 

所以,我用Google搜索這一點,並發現我需要改變我的方式路線的東西。

我試過了:map.connect ':controller/asked', :action => 'asked'map.resources :questions, :collection => {:asked => :get},但無濟於事。很顯然,我並不完全理解Rails映射是如何工作的,但如果有人讓我知道發生了什麼,我會非常感激!

回答

1

通過選取第一個路徑與請求的URL相匹配的路徑工作。

從您的描述看來,你似乎把你的map.connect陳述放在你的routes.rb的底部。您應該將其放置在map.resources :questions之前,否則URL /questions/asked會與map.resources匹配,作爲show操作。

+0

非常感謝! – user5243421 2010-05-26 09:01:06

相關問題