2010-06-18 17 views
0

第一層是路由,第二層是控制器,所以在View中,有沒有辦法在到達視圖之前將路徑和控制器的路徑或文件名以及行號轉儲出來?在Ruby on Rails中,當在視圖中時,您可以在到達View之前轉儲文件和行號嗎?

我想這樣做,因爲www.example.com/stories/12345是顯示一個頁面,但stories_controller.rb沒有一個def indexdef show

更新:我想這可能是因爲如果程序有錯誤,在這種情況下它會顯示應用程序跟蹤和軌道跟蹤。

回答

1

實際上,除了使用indexshow之外,沒有別的選擇,它必須在類StoriesController中定義。但這並不意味着這些方法是在文件「stories_controller.rb」中定義的。

有幾個選項:

  • 它們從它的來源ApplicationController的定義。或者還有另一個父級。
  • ,例如,當您使用ActiveScaffold控制器包含了將所有的標準CRUD操作的單行active_scaffold(指數顯示,...)

要查看的方法定義,你可以鍵入您script/console會話內

StoriesController.new.method('index') 

,它會返回一組類/模塊,解釋here

例如,在我們的ApplicationController中,我們包括定義方法login_required一個模塊,看起來像這樣:

>> ApplicationController.new.method(:login_required) 
=> #<Method: ApplicationController(PilgrimBase::Base::Authenticated)#login_required> 

希望這有助於。

+0

StoriesController.method( '索引')的錯誤了......這一項顯示的東西,但並沒有說在哪裏: >> StoriesController.instance_method( '索引') =># 2010-06-24 09:35:57

+0

我很抱歉,您必須編寫'StoriesController.new.method('index')'。我相應地更正了我的答案;) – nathanvda 2010-06-24 20:42:47

0

我知道這並沒有真正回答你的問題,但是... 你可以通過做

rake routes 

你在你的應用程序/視圖/故事已經show.html.erb看到你的路由/?

相關問題